Проблемы с блокировкой / перенаправлением по домену внутри .htaccess

#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, и теперь все работает идеально… спасибо за помощь!!