Как исключить редирект на 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 или обратитесь к документации Яндекса.

    Часто задаваемые вопросы