Как исправить ошибку слишком много перенаправлений в браузере

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

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

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

Я немного удивился ошибке, но после того, как пораскинул мозгами, понял, в чем ее причина. Помог мне в этом один из заголовков главной страницы сайта во время редиректа — x-redirect-by: WordPress.

Запрос приходит на внешний сервер по https, дальше он его перенаправляет на бэкенд по http, где работает wordpress. У него в настройках указано, что он живет по адресу с https и он на него редиректит сам. Запрос опять возвращается на proxy и так по кругу.

Я решил эту проблему следующим образом. На прокси добавил еще один заголовок.

location / {
    proxy_pass http://10.20.50.3:80;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto https;
    }

А в сам wordpress в файл wp-config.php, который лежит в корне сайта, добавил следующие строки.

if($_SERVER == 'https'){
    $_SERVER = 'on';
    $_SERVER = 443;
    }

После этого бесконечный редирект прекратился и сайт заработал. Я думал, что на этом все. Оказалось — нет. Возникла еще одна ошибка.

Что это значит ERR_TOO_MANY_REDIRECTS?

В большинстве случаев указанная проблема ERR_TOO_MANY_REDIRECTS возникает на браузере Гугл Хром более ранних версий (по словам разработчиков – до 44 версии Хром). В переводе текст сообщения звучит как «Слишком много редиректов», и обычно означает ситуацию, при которой пользовательский браузер переходит на какую-либо страницу, с которой его отправляют на следующую страницу, затем на другую страницу и так далее (или идёт замыкание цикла на уровне «А указывает на Б, а Б указывает на А»).


Ранее подобные циклы могли длиться до бесконечности, а компьютер зависал на неопределённое время

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

Похожими сообщениями об ошибке являются описанные ранее в нашем блоге IT-DOC:

  • ERR_FILE_NOT_FOUND;
  • ERR_NETWORK_CHANGED;
  • 500 Internal Server Error.
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *