我正在使用以下代码来阻止收到引荐来源垃圾邮件的网站上的巨大的垃圾邮件流量。
我是告诉从服务器负载的角度来看,使用 httpd.conf 更有效,但我对这种类型的操作非常不熟悉,也没有找到太多针对这种情况的教程。有人能提供教程或资源来展示阻止引用域的类似方法吗?
RewriteEngine on
# Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} spammer-one\.com [NC,OR]
RewriteCond %{HTTP_REFERER} spammer-two\.com
RewriteCond %{HTTP_REFERER} spammer-three\.com
RewriteRule .* - [F]
此外,是否值得花时间通过 httpd.conf 进行阻止,与上面的 htaccess 代码相比,它是否会显著减少服务器负载?
答案1
您可以尝试SetEnvIf Referer
类似下面的内容:
SetEnvIf Referer spammer-one\.com spammers
SetEnvIf Referer spammer-two\.com spammers
SetEnvIf Referer spammer-three\.com spammers
...
Order Allow,Deny
Allow from all
Deny from env=spammers
在您的 vhost definition/httpd.conf 文件中。
进一步阅读:
http://httpd.apache.org/docs/2.0/mod/mod_setenvif.html#setenvif
答案2
如果您想要服务器范围的,那么您可以在 httpd.conf 中使用它:
<Directory /var/www/vhosts/*/httpdocs>
SetEnvIf Referer spammer-one\.com spammers
SetEnvIf Referer spammer-two\.com spammers
SetEnvIf Referer spammer-three\.com spammers
Order Allow,Deny
Allow from all
Deny from env=spammers
</Directory>
将 /var/www/vhosts/*/httpdocs 替换为您服务器上的正确路径。通配符“*”确实有效。