【发布时间】:2014-10-15 13:18:33
【问题描述】:
我一直在尝试使用类似于下面显示的 .htaccess 代码阻止一些推荐垃圾邮件到我们的 WordPress 网站。
这似乎在阻止主域 (semalt.com) 和明确定义的子域 (semalt.semalt.com) 方面相当有效。
但是,通配符子域(即 1.semalt.com、2.semalt.com)似乎通过了过滤器。
这段允许通配符子域通过的代码有什么明显错误吗?
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# block spammers
RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*semalt\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*kambasoft\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*savetubevideo\.com [NC,OR]
RewriteCond %{HTTP_REFERER} semalt\.semalt\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*seoanalyses\.com [NC]
RewriteRule .* - [F]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
此外,我已设法将流减少到涓涓细流,因此 htaccess 代码可能是正确的,而垃圾邮件发送者正在通过其他方式绕过。谢谢!
【问题讨论】:
-
更新:我发现托管公司 (WPengine) 有一个 Nginx 层,它优先于 Apache 上的 .htaccess。当主机在 Nginx 上实施域块时,推荐垃圾邮件降至零(对于那些域)。
-
而且,虽然我确信代码不是最优的,但它在阻止直接 Apache 服务器上的那些引荐来源(及其通配符子域)方面非常有效。
-
另一个附录。事实证明,要阻止实际的引荐来源垃圾邮件和要阻止的“幽灵”引荐来源垃圾邮件。更多信息在这里:link
标签: wordpress apache .htaccess mod-rewrite