Задать вопрос
@Gedonist

Как правильно настроить mod rewrite?

Добрый день! Помогите разобраться с настройкой редиректа. Сайт на WP. Нужно все запросы с пустым реферрером пересылать на страницу проверки. После страницы проверки они получают реферрер и дальше могут просматривать сайт.
Дописал в htaccess такой код:
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_REFERER} ^$
RewriteCond %{HTTP:FROM} !(googlebot|yandex)
RewriteRule .* /check [R=301,END]
</IfModule>

Это работает для главной. Но не работает для вложенных страниц, типа "сайт.ру/категория/страница".
Я так понимаю это потому, что у WP есть для этих страниц встроенные редиректы:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>


Они стоят в htaccess ДО моего кода. Если я ставлю свой код перед ними, то начинается петля переадресаций и сайт не открывается. Как сделать, чтобы работало?
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Средний 9 комментариев
Решения вопроса 1
@Gedonist Автор вопроса
Ответ найден благодаря @dodo512
Помог вот такой код, вставленный перед редиректами WP:
RewriteCond %{THE_REQUEST} "!^\S+ /check/"
RewriteCond %{HTTP_REFERER} ^$
RewriteCond %{HTTP:FROM} !(googlebot|yandex)
RewriteRule .* https://jurist-arbitr.ru/check/ [R=302,END]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы