#regex #.htaccess #mod-rewrite #block #referrer
#регулярное выражение #.htaccess #мод-перезапись #блокировать #реферер
Вопрос:
Вот мой существующий код .htaccess для справки:
RewriteEngine on
RewriteCond %{HTTP_REFERER} offendingdomain
RewriteRule ^ http://www.google.com/? [R=301,L]
Все, что я прочитал до сих пор на SO и других сайтах, говорит о том, что это должно сработать, но сайт-нарушитель по-прежнему не перенаправляется с моего собственного. Кроме того, я пробовал блокировать с помощью приведенного ниже кода, но это тоже не работает.
RewriteEngine on
Options FollowSymlinks
RewriteCond %{HTTP_REFERER} offendingdomain [NC]
RewriteRule .* - [F]
У кого-нибудь есть какие-либо идеи относительно того, почему это не работает и как я должен это исправить? Заранее спасибо…любая помощь была бы высоко оценена!
Спасибо — Брэндон
Комментарии:
1. Не могли бы вы, пожалуйста, объяснить, как вы узнали, что это не работает? Чтобы лучше помочь вам, пытаюсь понять, какие данные вы просматриваете.
2. «но сайт-нарушитель по-прежнему не перенаправляется с моего собственного». Указанный сайт по-прежнему перенаправляет на мой собственный сайт. Вот в чем проблема…
3. Я понимаю проблему. Это не мой вопрос. Чего я не понимаю, так это откуда вы знаете, что сайт не перенаправляет. Вы просматриваете журнал? Вы являетесь владельцем этого сайта и переходите на него? И т.д.
Ответ №1:
Когда вы пытаетесь что-либо сделать на сайте-нарушителе (нажать на ссылку или воспользоваться формой поиска), перенаправление работает отлично. Итак, мне кажется, что пока трафик передается, referred
условие %{HTTP_REFERER}
выполняет свою работу.
Давайте попробуем добавить другие условия на случай, если кто-то попытается получить доступ к плохому сайту напрямую (в этом случае реферала не будет). Поэтому мы усилим существующее правило:
RewriteEngine on
RewriteCond %{HTTP_REFERER} offendingdomain [OR]
RewriteCond %{HTTP_HOST} offendingdomain
RewriteRule ^ http://www.google.com/? [R=301,L]
Комментарии:
1. Добавлена строка HTTP_HOST, и теперь все работает идеально… спасибо за помощь!!