Я использую следующий код, чтобы заблокировать спам от реферера на сайте, который получает огромный объем спам-трафика.
я сказал что с точки зрения нагрузки на сервер более эффективно использовать 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 выше?
Можешь попробовать 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 / httpd.conf.
Дальнейшее чтение:
http://httpd.apache.org/docs/2.0/mod/mod_setenvif.html#setenvif
если вы хотите использовать его в масштабе всего сервера, вы можете использовать это в своем 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 на правильный путь на вашем сервере. Подстановочный знак «*» действительно работает.