如何阻止来自 .htaccess 文件中的多个引荐来源网址和子域的引荐流量?

How to block referral traffic from multiple referrers and subdomains in .htaccess file?

我每个月都看到来自俄罗斯和中国的来自以下域的数以千计的推荐,我尝试将下面的代码添加到我的 .htaccess 文件,然后从我拥有的另一个域对其进行测试,但我似乎没有收到我期望收到的 403 Forbidden 消息。我错过了什么?

RewriteCond %{HTTP_REFERER} ^(www\.)?([a-z0-9-]+)\.social-buttons\.com$ [NC]
RewriteCond %{HTTP_REFERER} social-buttons\.com [NC]
RewriteCond %{HTTP_REFERER} googlsucks\.com [NC]
RewriteCond %{HTTP_REFERER} 4webmasters\.org [NC]
RewriteCond %{HTTP_REFERER} aliexpress\.com [NC]
RewriteCond %{HTTP_REFERER} best-seo-solution\.com [NC]
RewriteCond %{HTTP_REFERER} best-seo-offer\.com [NC]
RewriteCond %{HTTP_REFERER} buttons-for-website\.com [NC]
RewriteCond %{HTTP_REFERER} www\.myothertestdomain\.com [NC]
RewriteRule .* - [F]

除最后一个条件外,您应该为每个条件使用 OR 标志:

RewriteCond %{HTTP_REFERER} ^(www\.)?([a-z0-9-]+)\.social-buttons\.com$ [NC,OR]
RewriteCond %{HTTP_REFERER} social-buttons\.com [NC,OR]
RewriteCond %{HTTP_REFERER} googlsucks\.com [NC,OR]
RewriteCond %{HTTP_REFERER} 4webmasters\.org [NC,OR]
RewriteCond %{HTTP_REFERER} aliexpress\.com [NC,OR]
RewriteCond %{HTTP_REFERER} best-seo-solution\.com [NC,OR]
RewriteCond %{HTTP_REFERER} best-seo-offer\.com [NC,OR]
RewriteCond %{HTTP_REFERER} buttons-for-website\.com [NC,OR]
RewriteCond %{HTTP_REFERER} www\.myothertestdomain\.com [NC]
RewriteRule .* - [F]

您当前的代码表示:

If referer is "sociel-buttons.com"
AND
If referer is "googlsucks.com"
AND
etc...

这不是您想要的(总是 false:这就是它永远不会发生的原因)。
相反,您必须使用 OR 标志(您需要 OR 布尔条件)

RewriteCond %{HTTP_REFERER} ^(www\.)?([a-z0-9-]+)\.social-buttons\.com$ [NC,OR]
RewriteCond %{HTTP_REFERER} social-buttons\.com [NC,OR]
RewriteCond %{HTTP_REFERER} googlsucks\.com [NC,OR]
RewriteCond %{HTTP_REFERER} 4webmasters\.org [NC,OR]
RewriteCond %{HTTP_REFERER} aliexpress\.com [NC,OR]
RewriteCond %{HTTP_REFERER} best-seo-solution\.com [NC,OR]
RewriteCond %{HTTP_REFERER} best-seo-offer\.com [NC,OR]
RewriteCond %{HTTP_REFERER} buttons-for-website\.com [NC,OR]
RewriteCond %{HTTP_REFERER} www\.myothertestdomain\.com [NC]
RewriteRule ^ - [F]

问题不仅出在代码上,除了缺少 OR 之外,问题是您无法使用 .htaccess 文件 或至少大多数它们来自 .htaccess 文件。

在您的示例中,唯一会被阻止的是 best-seo 和 buttons-for-website,这两个通过爬虫(机器人)访问您的网站,并且是通常称为 Crawler Referrer Spam

人们会感到困惑并认为 .htaccess 规则有效,因为过了一段时间他们就不再看到垃圾邮件了,但事实是大多数推荐垃圾邮件都会出现几天然后消失。

您添加的其余行不会有任何效果。这些使用 Google 分析漏洞 仅在您的 Google 分析 中显示。 .htaccess 文件 "block the access" 到您的站点,但它们 从未 visit/access 您的站点 。这些通常称为 Ghost Referrer Spam.

目前唯一的方法是在 Google Analytics 中创建过滤器,您可以为每个过滤器创建一个过滤器,或者在您的 GA 中为有效主机名 设置一个过滤器这样您就不必担心新的 Ghost Referrer 垃圾邮件。

您可以查看此答案了解更多详情