Циклическая переадресация. Циклическая переадресация WordPress - решение проблемы

Был погожий теплый апрельский денёк. Я настраивал защищённое соединение на очередном клиентском Wordpress-сайте: заказал сертификат от Let"s Encrypt , отредактировал конфиг Nginx, сменил настройки Адрес WordPress (URL) и Адрес сайта (URL) :

Всё шло своим чередом, и ничего не предвещало беды:) Перезагружаю страницу, и тут бац!

Что значит ошибка ERR_TOO_MANY_REDIRECTS?

Для тех, кто в школе учил немецкий, дословный перевод звучит примерно так: "ошбк_слишком_много_переадресаций". Это значит, что при загрузке страницы браузером сервер отвечает кодом переадресации (301,302 или 307), браузер пытается получить новую страницу, опять получает код редиректа, опять пытается получить и так далее по кругу до тех пор, пока у него не лопнет терпение и не выдаст ошибку.

Такая ситуация не зависит от конкретного браузера. И Chrome, и Яндекс браузер, и Firefox будут выдавать один и тот же код. Хотя сообщение может немного отличаться. Огнелис, например, советует удалить файлы cookie. Забегая вперёд скажу, что это сейчас не поможет:)

Как появилась циклическая переадресация на Wordpress?

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

Оказалось дело в том, что на сервере использовалась связка Nginx+Apache. Nginx принимал запрос и передавал его Apache по 81 порту. Соответственно, Apache был не в курсе, что используется какое-то защищённое соединение.

Как исправить ERR_TOO_MANY_REDIRECTS для Wordpress+Nginx+Apache?

Да просто!

Добавить в.htaccess

SetEnv HTTPS "on" SetEnv HTTP_X_FORWARDED_PROTO "https"

Теперь Apache всегда будет определять текущую версию сайта как https, и Wordpress не будет никуда переадресовывать.

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

Что такое циклическая переадресация?

Циклическая переадресация – это бесконечное перенаправление страницы на свой собственный адрес или же перенаправление на адрес, который в конечном итоге все равно приводит на одну и ту же страницу.

Ошибка 310 (net::ERR_TOO_MANY_REDIRECTS) может появиться при переходе на сайт, попытке зайти в свой профиль, при использовании браузерных игр.

Чаще всего такая ошибка возникает при использовании браузера Google Chrome . Но в других браузерах тоже не редкость. Не слишком просвещенные пользователи могут запаниковать и подумать, что им полностью закрыли доступ к сайту. Но циклическая переадресация возникает совсем по другим причинам.

Почему возникает такая ошибка?

  • Работы на сервере, на котором расположен сайт, могут временно привести к возникновению циклической переадресации. Или если работы на нем закончен ы, вполне может быть, что поменялись настройки и теперь сайт работает некорректно.
  • Вторая распространенная причина – это когда большое количество зарегистрированных пользователей пытается зайти на страницу одновременно. Как итог, сервер не выдерживает нагрузки и выдает ошибку.
  • Третья причина – это некорректное время на компьютере , с которого осуществляется вход. Как правило, браузер автоматически сверяет время, поэтому неправильная дата и часовой пояс может быть причиной возникновения циклической переадресации.
  • Четвертая причина – сохраненный кеш и куки браузера . Из-за большого объема данных, также может возникать эта ошибка. Также если пользователь запретил сохранять куки сторонних сайтов , то может возникнуть конфликт и появится ошибка. Как следствие – на сайт невозможно зайти.

Как исправить?

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

Для того чтобы зайти на сайт и исправить ошибку можно предпринять следующие шаги:

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

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

Циклическая переадресация WordPress сайтов хорошо известна, особенно начинающим пользователям. Результатом этой проблемы становится недоступностью сайта или административной панели для просмотра и работы.

Причина №2

Вторая причина, установка плагина, который создаст рассматриваемую циклическую переадресацию WordPress сайта.

Чаще всего проблемы подобного рода создают плагины из группы «Redirect» и плагины вносящие свои правила в файл.htaccess сайта.

Напомню, файл.htaccess (точка вначале), создается из файла htaccess.txt коробочной версии WordPress путём простого переименования. Нужен этот файл для ручного управления работой веб-сервера Apache вашего сервера.

Htaccess файл полезный, но требует знаний и аккуратной правки. Некоторые плагины дописывают в этот файл свои правила. Чаще они это делают с предупреждением администратору при настройке плагина.

Например, в прошлой статье я писал , где есть возможность включить настройку «htaccess redirect». Это создаст самую быструю переадресацию сайта при переходе на протокол HTTPS . Однако настройки вашего сервера могут при таком включении создать циклическую переадресацию WordPress.

Еще пример. Все плагины безопасности WordPress дописывают в файл.htaccess . Но не все плагины их оттуда выписывают, после своего удаления. Наслоение правил может привести к циклической переадресации.

Для исправления этой причины ошибки, достаточно сначала отключить проблемный плагин. Если непонятно, какой плагин создает проблему, отключать их по одному. Если потеряли вход в административную панель, отключать плагины по FTP, меняя их название (например, добавляя цифру к названию).

Найдя проблемный плагин, откройте в текстовом редакторе файл.htaccess и удалите запись сделанную проблемным плагином. Найти запись легко, она будет в закомментированных строках с названием плагина. Например, так #BEGIN ReallySimpleSSL …тут запись… #END .

Удалять плагин необязательно, нужно просто исправить свою неправильно выставленную настройку.

Причина №3: SSL путаница

Очень часто при переходе на безопасный проток HTTPS после приобретения сертификата приходит циклическая переадресация WordPress.

Здесь проблема в первоочерёдности. Сначала нужно подключить SSL сертификат на вашем сервере, а потом переводить сайт на безопасный проток HTTPS и делать переадресацию HTTP на HTTPS.

И только поле завершения работ на сервере, переходить на сайт и ставить плагины группы SSL, исправляющие смешанный контент сайта. Об этом в статьях:

Причина №4: Облака

Если вы используете облачные сервера, то при переходе на SSL на сервере, нужно изменить настройки в облачном сервисе. Например, на можно попробовать в настройке SSL Flexible SSL поменять на Full SSL или наоборот.

Причина №5: КЭШ

Появление читаемой ошибки циклической переадресации в браузере, может быть исправлено, простой чисткой кэша браузера.

Вывод

В этой статье я показал, что такое циклическая переадресация WordPress, как исправить циклическую переадресацию WordPress сайта. Как правило, причина подобной ошибки лежит на поверхности и связана она с вашими последними действиями на сайте или вашем сервере. Как раз сегодня, 25-11-2019 я исправлял эту ошибку по варианту №1, руками в phpadmin.

Данная ошибка свидетельствует о бесконечной циклической переадресации. Одна из самых распространенных причин возникновения циклического редиректа — конфликт перенаправления с http на https и настроек CMS .

Причина возникновения ошибки «Сайт выполнил переадресацию слишком много раз»

При установке сертификата на хостинг ваш сайт становится доступен и по безопасному протоколу https : https://your_site.ru . Однако по умолчанию сайт по-прежнему открывается по протоколу http . Чтобы ваш сайт автоматически загружался по https , необходимо настроить редирект с http на https .

Редиректы устанавливают через конфигурационные файлы .htaccess или web.config . Также вы можете использовать инструмент для добавления редиректа в панели управления хостингом. Указанные способы описаны в разделе .

На этом этапе у пользователей часто появляется циклическая переадресация, которая приводит к ошибке. При настройке редиректа вы задаете перенаправление: http://your_site.ru —> https://your_site.ru . Если при этом в CMS или на сайте задан параметр открывать сайт строго по протоколу http , возникает замкнутый цикл: http://your_site.ru —> https://your_site.ru —>http://your_site.ru —> https://your_site.ru>

Сервер фиксирует слишком большое количество переадресаций и выдает ошибку: ERR_TOO_MANY_REDIRECTS .

Исправление ошибки «Сайт выполнил переадресацию слишком много раз»

Каждая CMS имеет собственный конфигурационный файл, который использует индивидуальные правила для перенаправления. Описать все способы исправления этой ошибки невозможно. Вы можете проверить все добавленные правила переадресации и устранить конфликт, обратившись за помощью к разработчикам сайта или на тематические форумы по используемой CMS. Также вам может помочь замена текущего файла .htaccess на стандартный, для используемой вами CMS:

«Сайт выполнил переадресацию слишком много раз» (WordPress)

Для исправления ошибки в CMS добавьте в конфигурационный файл wp-config.php , размещенный в корневой директории вашего сайта, строки:

Define("FORCE_SSL_ADMIN", true); if ($_SERVER["HTTP_X_FORWARDED_PROTO"] == "https") $_SERVER["HTTPS"]="on";

Также для решения этой проблемы на VPS и выделенных серверах вы можете добавить в httpd.conf (конфигурационный файл Apache) строку:

SetEnvIfNoCase X-Forwarded-Proto "https" HTTPS=on

Чтобы изменения вступили в силу, перезапустите веб-сервер Apache.

«Сайт выполнил переадресацию слишком много раз» (Joomla)

Для исправления ошибки в CMS Joomla в конфигурационный файл .htaccess после строки RewriteEngine On добавьте.