Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 使用htaccess规则阻止语义引用器_.htaccess_Mod Rewrite_Http Referer_Referrer Spam - Fatal编程技术网

.htaccess 使用htaccess规则阻止语义引用器

.htaccess 使用htaccess规则阻止语义引用器,.htaccess,mod-rewrite,http-referer,referrer-spam,.htaccess,Mod Rewrite,Http Referer,Referrer Spam,我已经为htaccess实现了以下代码,但仍然看到来自semalt的引用,例如: 74.semalt.com 89.semalt.com 守则: # Block visits from semalt.com RewriteEngine on RewriteCond %{HTTP_REFERER} ^http://([^.]+\.)*semalt\.com [NC] RewriteRule .* - [F] 你知道这些推荐人是如何绕过这条规则(我在网上找到的)的吗?你知道我是如何完全阻止他们

我已经为htaccess实现了以下代码,但仍然看到来自semalt的引用,例如:

74.semalt.com
89.semalt.com
守则:

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

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

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

# Block visits from semalt.com
RewriteEngine on 
RewriteCond %{HTTP_REFERER} ^http://([^.]+\.)*semalt\.com [NC]
RewriteRule (.*) http://www.semalt.com [R=301,L]

我尝试了网络上所有的这些示例片段。它们都不起作用,Semalt不断更改它们的域和路径。
我建议这样做,它对我来说非常有效,并且语法合理。它将应用于包含semalt.com字符串的任何引用者路径。注意,您需要Apache2.4才能工作。它可以放在.htaccess中没有问题,或者理论上放在主Apache配置中

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

全盘否定
祝你好运
更新:如果这导致500错误,您需要在主Apache配置中启用.htaccess,在本例中,我的web服务器根目录/var/www/wordpress中有.htaccess,因此我的.conf中有:

<Directory /var/www/wordpress>
    Options +FollowSymLinks
    AllowOverride all
    Require all granted
</Directory>

选项+FollowSymLinks
允许超越所有
要求所有授权

以下是阻止僵尸网络主机数量不断增加的另一种方法:

# 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

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

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黑名单和谷歌分析部分,以防止推荐人的垃圾邮件流量,您可以在这里找到:


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

<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>

重新启动发动机
选项+FollowSymLinks
重写第二个%{HTTP|u REFERER}(?:o-o-6-o-o | bestwebsitesawards | s.click.aliexpress |简单共享按钮|在这里查看您的网站|论坛.topic55198628.darodar | hulfingtonpost | ilovitaly | price | blackhatworth | semalt semalt semalt kambasoft
重写cond%{HTTP|u REFERER}(?:lomb | lombia | econom | lumb)\.co[NC,或]
重写cond%{HTTP\u REFERER}(?:cenoval | Iskalko)\.ru[NC,或]
重写cond%{HTTP\u REFERER}(?:smailk | humanorightswatch)\.org[NC,或]
RewriteCond%{HTTP\u REFERER}(?:ranksonic | savetubevideo)\.info[NC]
重写规则^-[F]

希望有人觉得这个有用

不确定,但在RewriteCond%{HTTP\u REFERER}^HTTP://.*semalt\.com[NC]RewriteRule(.*)上尝试这个
重写引擎http://www.semalt.com [R=301,L]
您是否尝试过使用
RewriteCond%{HTTP\u REFERER}\.?semalt\.com$[NC]
?这将匹配每个
semalt
子域,即使您的代码应该正常工作(可能
http://
不在referer?这会很奇怪,但这是我发现它与您的条件不匹配的唯一原因)只要访问semalt.com并请求排除您的网站谢谢B先生……我发布的解决方案到目前为止似乎有效。但我会记住这一点,以防以后不会发生。