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

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

Чаще всего эта ошибка возникает из-за  проблем при перенаправлении с HTTP на HTTPS.

Сайты, которые используют незащищенное соединение, работают по протоколу HTTP:

Чтобы сайт открывался по защищенному соединению HTTPS, нужно приобрести и установить SSL-сертификат. Далее понадобится настройка редиректа с HTTP на HTTPS. Он настраивается в панели управления или в конфигурационных файлах .htaccess и web.config, а также требуются действия в CMS (если сайт сделан с её помощью). На этом этапе можно допустить ошибки, которые приведут к проблемам с переадресацией.

Например, у пользователя сайт http://site.ru. Он приобрел SSL-сертификат и сделал редирект в конфигурационном файле. Теперь его сайт должен работать по адресу https://site.ru. При этом в CMS так и остались настройки, в соответствии с которыми сайт должен открываться по протоколу HTTP. Таким образом, сначала система, исходя из настроек .htaccess или web.config, переадресует браузер на HTTPS, потом по параметрам CMS снова переадресует на HTTP и затем система снова возвращается к настройкам конфигурационного файла и так по кругу. Образуется циклическая переадресация http://site.ru ―>  https://site.ru ―> http://site.ru ―> https://site.ru... Так появляется ошибка ERR_TOO_MANY_REDIRECTS.

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

Обратите внимание! Чтобы ошибка «Сайт выполнил переадресацию слишком много раз» была исправлена, PHP должен работать в режиме FastCGI. На виртуальном хостинге PHP FastCGI установлен по умолчанию. На VPS этот режим также доступен к использованию.

WordPress

Если сайт сделан в CMS WordPress, добавьте в конфигурационный файл wp-config.php строки:

define('FORCE_SSL_ADMIN', true);

if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') 

$_SERVER['HTTPS']='on';

Joomla

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

RewriteCond %{HTTP:X-FORWARDED-PROTO} ^https$

RewriteRule .? - [E=HTTPS:on]

VPS или выделенный сервер

Если сайт размещен на VPS или выделенном сервере, можно добавить в конфигурационный файл Apache httpd.conf строку:

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

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

 

Если вы не нашли ответ, спросите у нас!
Написать в поддержку