3

我已经在 htaccess 中实现了以下代码,但仍然看到来自 semalt 的引荐来源网址,例如:

74.semalt.com
89.semalt.com

编码:

# Block visits from semalt.com
RewriteEngine on 
RewriteCond %{HTTP_REFERER} ^http://([^.]+\.)*semalt\.com [NC]
RewriteRule .* - [F]

知道这些推荐人如何绕过这条规则(我在网上找到的)以及如何完全阻止它们吗?

4

5 回答 5

4

您的代码看起来不错,语法检查正常!我使用了这些 mod_rewrite 方法:

RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?semalt\.com.*$ [NC]
RewriteCond %{HTTP_REFERER} ^http(s)?://(.*\.)?semalt\.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*semalt\.com\ [NC,OR]

或使用 .htaccess 模块 mod_setenvif

SetEnvIfNoCase Referer semalt.com spambot=yes
SetEnvIfNoCase REMOTE_ADDR "217\.23\.11\.15" spambot=yes
SetEnvIfNoCase REMOTE_ADDR "217\.23\.7\.144" spambot=yes

Order allow,deny
Allow from all
Deny from env=spambot

我什至创建了一个 Apache、Nginx 和 Varnish 黑名单以及 Google Analytics 段来防止引荐来源垃圾邮件流量,你可以在这里找到它:

https://github.com/Stevie-Ray/referrer-spam-blocker/

于 2015-01-08T10:16:37.477 回答
2

这是许多使用正则表达式的垃圾邮件推荐网站的更新代码

<IfModule mod_rewrite.c>
    RewriteEngine On
    Options +FollowSymLinks
    RewriteCond %{HTTP_REFERER} (?:o-o-6-o-o|bestwebsitesawards|s.click.aliexpress|simple-share-buttons|see-your-website-here|forum.topic55198628.darodar|hulfingtonpost|ilovevitaly|priceg|blackhatworth|semalt.semalt|kambasoft|buttons-for-website|BlackHatWorth|7makemoneyonline)\.com [NC,OR]
    RewriteCond %{HTTP_REFERER} (?:lomb|lombia|econom|lumb)\.co [NC,OR]
    RewriteCond %{HTTP_REFERER} (?:cenoval|Iskalko)\.ru [NC,OR]
    RewriteCond %{HTTP_REFERER} (?:smailik|humanorightswatch)\.org [NC,OR]
    RewriteCond %{HTTP_REFERER} (?:ranksonic|savetubevideo)\.info [NC]
    RewriteRule ^ – [F]
</IfModule>

希望有人觉得这很有用

于 2015-03-18T16:21:20.373 回答
1

好的,这就是我让它工作的方式:

# Block visits from semalt.com
RewriteEngine on 
RewriteCond %{HTTP_REFERER} ^http://([^.]+\.)*semalt\.com [NC]
RewriteRule (.*) http://www.semalt.com [R=301,L]
于 2014-08-28T00:48:01.767 回答
0

我尝试了来自整个网络的所有这些示例片段。它们都不起作用,Semalt 不断改变它们的域和路径。
我建议这对我很有用并且语法合理。它将适用于任何包含 semalt.com 字符串的引荐来源网址路径。请注意,您需要 Apache 2.4 才能工作。它可以进入您的 .htaccess 没有问题,或者理论上可以进入您的主要 Apache 配置。

<If "%{HTTP_REFERER} =~ /semalt.com/">
        Deny from all
</If>

祝你好运!
更新:如果这导致 500 错误,您需要在主 Apache 配置中启用 .htaccess,在此示例中,我的 .htaccess 位于 /var/www/wordpress 的 Web 服务器根目录中,因此我的 .htaccess 位于我的 .htaccess 中。配置:

<Directory /var/www/wordpress>
    Options +FollowSymLinks
    AllowOverride all
    Require all granted
</Directory>
于 2014-08-30T12:40:31.543 回答
0

这是阻止不断增长的僵尸网络主机列表的另一种方法:

# Block Common Botnets
SetEnvIfNoCase Referer fbdownloader.com spambot=yes
SetEnvIfNoCase Referer descargar-musicas-gratis.com spambot=yes
SetEnvIfNoCase Referer baixar-musicas-gratis.com spambot=yes
SetEnvIfNoCase Referer savetubevideo.com spambot=yes
SetEnvIfNoCase Referer srecorder.com spambot=yes
SetEnvIfNoCase Referer kambasoft.com spambot=yes
SetEnvIfNoCase Referer semalt.com spambot=yes
SetEnvIfNoCase Referer ilovevitaly.com spambot=yes
SetEnvIfNoCase Referer 7makemoneyonline.com spambot=yes
SetEnvIfNoCase Referer buttons-for-website.com spambot=yes
SetEnvIfNoCase Referer econom.co spambot=yes
SetEnvIfNoCase Referer acunetix-referrer.com spambot=yes
SetEnvIfNoCase Referer yougetsignal.com spambot=yes
SetEnvIfNoCase Referer darodar.com spambot=yes

Order allow,deny
Allow from all
Deny from env=spambot
于 2014-12-21T19:29:39.517 回答