Как исправить ошибку слишком много перенаправлений в браузере
Сайт выполнил переадресацию слишком много раз.
С 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.