推荐人垃圾邮件现在是我分析中的一个大问题,我已经与它作斗争了几个月。
我知道围绕 semalt.com(和其他推荐垃圾邮件发送者)的僵尸网络讨论。我也知道,一些推荐垃圾邮件很可能在没有访问我的网站的情况下被触发(这就是为什么我的.htaccess
指令没有捕捉到所有这些),并且我相应地在我的分析/标签管理器中添加了过滤器。
我进行了广泛的研究,包括: 如何阻止像 darodar.com 这样的垃圾邮件推荐人访问网站?和mod_rewrite RewriteRule 中的域名
我希望实现代码,任何具有实际爬虫的网站都会将他们的“机器人”发回给他们。我有 100 多个推荐人列入黑名单,.htaccess
但他们都遵循相同的模式,这就是我现在拥有的:
<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*semalt\.com.*? [NC]
RewriteRule ^(.*)$ http://semalt.com/ [L]
RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*simple-share-buttons\.com.*? [NC]
RewriteRule ^(.*)$ http://simple-share-buttons.com/ [L]
</IfModule>
我想简化一下(发送推荐垃圾邮件的新域经常弹出)所以我想知道这是否可行:
<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} (semalt\.com) [NC]
RewriteRule ^(.*)$ %{HTTP_REFERER} [L]
RewriteCond %{HTTP_REFERER} (simple-share-buttons\.com) [NC]
RewriteRule ^(.*)$ %{HTTP_REFERER} [L]
</IfModule>
看起来它应该可以工作,这让我想知道我是否可以更进一步:
<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} (semalt\.com|simple-share-buttons\.com) [NC]
RewriteRule ^(.*)$ %{HTTP_REFERER} [L]
</IfModule>
我想尽可能少地给我自己的服务器增加负担,而且我不关心协议、子域或包含的路径。
基本上,如果引用者的任何部分与该字符串匹配,我想阻止它并将其重定向到自身。
我编写的指令会按我的预期工作吗?它们在 RegEx 匹配模式中是否相当有效?
有没有更好的方法来做到这一点,我不知道?
注意:其中许多网站都位于 VPS 上,我可以在其中编辑httpd.conf
但并非所有.htaccess
我可以适应的具体答案都是首选。