Как исключить редирект на Turbo-страницы для категории /astrology/
При настройке редиректа на Turbo-страницы Яндекса часто возникает проблема: при добавлении правила для исключения категории, например /astrology/, весь редирект перестает работать. Это связано с конфликтом условий и порядком обработки правил в файле .htaccess. Разберём, как правильно настроить исключение, чтобы редирект работал для всех страниц, кроме указанных.
Почему отключается редирект при добавлении исключения?
Основная причина - неверный порядок правил или неправильное использование флагов [OR]. В вашем коде все условия объединены через OR, что приводит к тому, что редирект применяется, если любое из условий совпадает, включая исключения. В результате правило срабатывает для всех запросов, и сайт перестает корректно обрабатываться.
Правильная структура .htaccess для исключений
Чтобы исключить редирект для конкретной категории (например, /astrology/), нужно сначала задать условия, которые запрещают редирект для этой категории, а затем - условия для остальных страниц. Используйте флаг [NC] для регистронезависимости и проверяйте URI через RewriteCond.
Пример корректного кода
RewriteEngine On
# Исключаем категорию /astrology/ и главную страницу
RewriteCond %{REQUEST_URI} !^/astrology/?$ [NC]
RewriteCond %{REQUEST_URI} !^/$ [NC]
RewriteCond %{REQUEST_URI} !^/wp-admin [NC]
RewriteCond %{REQUEST_URI} !^/wp-login\.php [NC]
RewriteCond %{REQUEST_URI} !\.(css|js|png|jpe?g|gif|webp|svg|woff2?)$ [NC]
# Редирект на Turbo для всех остальных страниц
RewriteRule ^(.*)$ https://yandex.ru/turbo?text=https://%{HTTP_HOST}/$1 [R=301,L,QSA]В этом примере мы используем отрицание (!) в условиях RewriteCond, чтобы исключить нужные URI. Обратите внимание: флаг OR не нужен, так как все условия должны выполняться одновременно (логическое И).
Как избежать конфликта с WordPress-правилами
Важно разместить правила редиректа перед стандартными правилами WordPress (блок <IfModule mod_rewrite.c>). Иначе WordPress перехватит запрос, и редирект не сработает. Убедитесь, что ваш код находится до раздела с перезаписью URL для index.php.
Проверка и отладка
- После изменения
.htaccessочистите кеш браузера и проверьте редирект через инструменты разработчика (вкладка Network). - Используйте онлайн-валидаторы .htaccess, чтобы избежать синтаксических ошибок.
- Если редирект всё равно не работает, временно отключите плагины кеширования, которые могут переопределять правила.
Частые ошибки при настройке
Одна из распространенных ошибок - использование [OR] для всех условий, что приводит к непредсказуемому поведению. Также не забывайте экранировать точки и слэши в регулярных выражениях (например, \. для точки). И последнее: всегда проверяйте, что путь к категории указан без лишних символов.
Заключение
Исключение редиректа на Turbo-страницы для категории /astrology/ требует правильного порядка условий и использования отрицаний. Следуя приведённым примерам, вы сможете настроить редирект без сбоев. Если проблема сохраняется, проверьте консоль разработчика на наличие ошибок 500 или обратитесь к документации Яндекса.