Как разрешить конфликт плагина редиректа в wordpress и файла htaccess?

У меня сайт на wordpress с установленным плагином переадресации redirection всё последних версий.

Установлен сертификат SSL и сайт открывается без проблем открывается по пути https://site.ru. Проблемы начинаются при попытке перехода с www (https://www.site.ru): он не открывается и показывает ошибку циклической переадресации.

Если в .htaccess прописываю следующее в самом верху файла

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.ru [NC]
RewriteRule ^(.*)$ https://site.ru/$1 [L,R=301]

То, по любом переходе на сайт с www и без я получаю ошибку циклической переадресации. Но, стоит отключить при этом плагин redirect, то сразу отрабатывает все переходы и с www и без.

Подскажите как быть, т.к. плагин редиректа нужен - там настроено много переадресаций со старых проиндексированных страниц


Ответы (1 шт):

Автор решения: Viktor

Проблема циклической переадресации может возникать из-за конфликта между настройками в .htaccess и плагином Redirection. Давайте попробуем решить эту проблему, сохранив функциональность плагина.

  • Проверка настроек плагина Redirection:
    Убедитесь, что в плагине Redirection нет правил, которые могут конфликтовать с вашими настройками в .htaccess. Проверьте, есть ли правила, которые перенаправляют с https://site.ru на https://www.site.ru или наоборот.

  • Изменение .htaccess:
    Попробуйте изменить ваш .htaccess файл, чтобы избежать конфликта с плагином Redirection. Например, вы можете использовать следующий код:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.site\.ru [NC]
    RewriteRule ^(.*)$ https://site.ru/$1 [L,R=301]
    
    # Остальные правила WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
  • Проверка конфигурации сервера:
    Убедитесь, что ваш сервер настроен правильно для обработки SSL и что нет других конфигураций, которые могут вызывать циклическую переадресацию.

  • Проверка кэша:
    Очистите кэш браузера и кэш на сервере, чтобы убедиться, что изменения в .htaccess вступили в силу.

  • Проверка логов:
    Проверьте логи сервера (например, error.log или access.log), чтобы увидеть, какие запросы вызывают циклическую переадресацию. Это может дать подсказку о том, где именно происходит конфликт.

  • Тестирование:
    После внесения изменений протестируйте сайт с различными URL (с www и без), чтобы убедиться, что переадресация работает корректно.

Если после выполнения этих шагов проблема не решена, возможно, стоит обратиться к поддержке плагина Redirection или к хостинг-провайдеру для получения дополнительной помощи.

→ Ссылка