Бесконечный редирект как исправить

Содержание:

  • Что это такое
  • Ошибка 301
  • Основные причины возникновения
  • Пути быстрого решения
  • Как исправить ошибку на виртуальном хостинге
  • Настройка редиректа на VDS Nginx+Apache
  • Профилактические меры для браузера
  • Сервисы для проверки циклических редиректов
  • Работа с файлом .htaccess

Что это такое

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

Зачем убирать

  • Для повышения скорости загрузки страниц сайта за счет отключения HTTPS-соединений.
  • Для быстрого перенаправления посетителей на новый ресурс при переносе сайта на новый домен.

Ошибка 310

В случае неполадок со стороны сервера, циклическая переадресация становится причиной ошибки. При открытии сайта может появиться сообщение – «на этой странице обнаружена циклическая переадресация» что может служить сигналом о наличии ошибки 310.

310
(net::ERR_TOO_MANY_REDIRECTS)

Помимо этого, данная ошибка может появиться при использовании определённого браузера. Наиболее подвержен этому «заболеванию» браузер Chrome. Хотя и в других подобная проблема не редкость.

Основные причины возникновения

  1. Технические работы на сервере на некоторое время могут привести к возникновению ошибки. После их завершения, как правило, сайт быстро восстанавливает свою корректную работу. Если этого не произошло, в большинстве случаев, со стороны сервера были изменены настройки, отвечающие за переадресацию.
  2.  Повышенная нагрузка на сервер при большом количестве посетителей, пытающихся одновременно получить доступ к странице. В результате сервер не выдерживает нагрузки и «падает» выдавая сообщение об ошибке.
  3. Некорректно выставленное время на устройстве, с которого выполняется вход на страницу. В большинстве случаев, браузер проводит автоматическую проверки времени на компьютере и сервере. При их несовпадении может возникнуть ошибка циклической переадресации.
  4. Большой объем данных сохранённых в кэше и cookie браузера.
  5. Запрет на сохранение cookie сайтов в браузере.
  6. Циклическое перенаправление и установка CMS
  7. В панели управления хостингом и в файле .htaccess одновременно указана переадресация на HTTPS.
  8. Ошибка циклического перенаправления может возникнуть при некорректной установке или настройке CMS. Это относится как к популярным «движкам» – WordPress, Joomla, Opencart, или 1С-Битрикс так и к менее известным.

Пути быстрого решения проблемы

Опираясь на приведённые выше причины, исправить проблему циклической переадресации можно следующими способами:

  1. Если после технических работ на сервере доступ к странице не восстановился, следует обратиться в техническую поддержку. В случае внесения изменений в настройки сервера, специалисты ТП объяснят, что необходимо предпринять.
  2. При «падении» сервера из-за большого количества обращений, необходимо дождаться снижения потока посетителей, а также восстановительных работ по налаживанию корректной работы ресурса. В данном случае, желательно обращение в техническую поддержку для выяснения причины отсутствия доступа.
  3. Очистить cookie, кэш и историю посещений в браузере.
  4. В настройках безопасности браузера разрешить сохранять cookie сторонних сайтов.
  5. Наиболее радикальным решением является переустановка CMS. Если это не помогает необходимо обратиться в техническую поддержку хостинг-провайдера и получить инструкции по установке и настройке.
  6. Убрать переадресацию на HTTPS из файла .htaccess.

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

Данная ошибка возникает при наличии редиректа в файле «.htaccess» и включенном редиректе в ISPmanager. Подробнее о нем можно прочитать в статье «Что такое редирект» нашего блога. Для решения проблемы нужно проверить файл «.htaccess» на наличие редиректов с «http» на «https» с помощью изложенного ниже алгоритма.

  1. Перейти в ISPmanager, в разделе «WWW» выбрать «WWW-домены» и нужный домен. Затем нажать «Каталог» в верхнем меню для перехода к файлам сайта.
  2. Выбрать файл «.htaccess» одним нажатием и кликнуть «Изменить» в верхнем меню.
  3. Проверить файл на наличие редиректов. О возможных вариантах редиректов в «.htaccess» можно узнать здесь.
  4. Проверить включен ли редирект в настройках ISPmanager. В разделе «WWW» нажать «WWW-домены», выбрать нужный домен и кликнуть «Изменить» в верхнем меню.
  5. В появившемся окне проверить — установлена ли галочка на пункте «Перенаправлять HTTP-запросы в HTTPS». Данный пункт будет виден только, если включена галочка на пункте «Защищенное соединение (SSL)».
  6. В разделе «WWW» нажать «WWW-домены», выбрать нужный домен и кликнуть «Редиректы» в верхнем меню. Появится список с редиректами. Если редиректы отсутствуют, то он будет пустым.
  7. Если редирект включен в пунктах 1, 2 и 3, нужно убрать лишние редиректы оставив лишь один из них.

Настройка редиректа на VDS Nginx+Apache

При использовании Nginx+Apache может произойти зацикливание редиректа «с http на https». Данная проблема связана с тем, что подключение по 80 порту идет на Nginx, а за ним уже находится Apache. Поэтому соединение Nginx и Apache работает не по SSL. В этом случае нужно отредактировать конфигурационный файл Nginx. Добавив в него такие значения:

If ( $scheme = "http" ) {
rewrite ^/(.*)$ https://$host/$1 permanent;
}

Поддержание браузера в рабочем состоянии

Браузер также часто становится причиной циклической переадресации. Для минимизации его влияния на возможность возникновения ошибки необходимо совершать ряд профилактических действий.

  1. Своевременно чистить историю и делать это не реже одного раза в неделю, при активном использовании браузера.
  2. Отключить неиспользуемые плагины и расширения.
  3. Регулярно обновлять браузер на сайте официальных разработчиков.

Как проверить наличие цепочки редиректов

Самый очевидный способ обнаружения — массовая проверка кодов статуса на всех страницах сайта. Сделать это можно с помощью удобных автоматизированных инструментов (redirect tracker), работающих в браузере или в качестве клиентского ПО.

Они функционируют по схожему принципу. Пользователю нужно всего лишь разместить в операционном окне ссылку на интересующий ресурсы, нажать «Старт» и дождаться результатов сканирования.

Популярные сервисы для отслеживания цепочек редиректов

Netpeak Spider

  • Язык: русский.
  • Платно (с бесплатным пробным периодом).
  • Помимо отслеживания цепочки редиректов, делает полный SEO-аудит сайта, включая выявление ошибок оптимизации.
  • Анализирует крупные контентные сайты (более 100 000 страниц).

Анализ сайта Webmasta

  • Язык: русский.
  • Бесплатно.
  • Отслеживает полную цепочку перенаправлений.
  • Получение IP-адреса сайта и отслеживание всех веб-ресурсов на этом адресе.

Проверка переадресации Website Planet

  • Язык: русский.
  • Бесплатно.
  • Отслеживание всех типов редиректов.
  • Получение полного URL-адреса коротких, рекламных или партнерских ссылок без перехода.

Массовая проверка цепочек редиректов Majento

  • Язык: русский.
  • Бесплатно.
  • Анализирует цепочку редиректов.
  • Получение полного URL-адреса коротких, рекламных или партнерских ссылок без перехода.

SEO-помощник Rookee

  • Язык: русский.
  • Бесплатно (после регистрации).
  • SEO-аудит сайта всех страниц сайта по 70 параметрам.
  • Пошаговые рекомендации по исправлению найденных ошибок.

После того как страницы с кодами редиректов найдены, рекомендуется приступить к правке конфигурационного файла .htaccess.

Работа с файлом настроек каталогов

Для удобной настройки сервера используется файл .htaccess. С его помощью можно настроить правильные редиректы и значительно снизить риск возникновения циклической переадресации.

Перед настройкой, в файл обязательно вносится следующий код:

RewriteEngine On

После этого идут настройки основных редиректов, подходящие для различных серверов, в том числе Nginx и Apache.

Важно помнить, что прежде чем вносить какие-либо изменения в файл .htaccess необходимо сделать его копию и желательно бекап всего сайта.

Перебрал уже целую кучу мануалов, но ситуация не меняется, попадаю в цикличный редирект после установки SSL сертификата и настройки сервера nginx. Может кто указать, где ошибка:

 server {
listen 80;
server_name www.wherefilmed.org wherefilmed.org;
return 301 $scheme://wherefilmed.org$request_uri;
}
server {
listen 443 ssl default_server;
server_name www.wherefilmed.org wherefilmed.org;
ssl_certificate /etc/letsencrypt/live/wherefilmed.org/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/wherefilmed.org/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/ugrobug/wherefilmed;
}

location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}


}



server {
if ($host = www.wherefilmed.org) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name www.wherefilmed.org;
listen 80;
return 404; # managed by Certbot

}

server {
if ($host = wherefilmed.org) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name wherefilmed.org;
listen 80;
return 404; # managed by Certbot
}

задан 13 июл 2022 в 12:05

Евгений's user avatar

3

Уберите фрагент:

 server {
listen 80;
server_name www.wherefilmed.org wherefilmed.org;
return 301 $scheme://wherefilmed.org$request_uri;
}

И еще нет неоходиости в условии т.к. в этот блок server не попадет хост иной чем www.wherefilmed.org:

if ($host = www.wherefilmed.org) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name www.wherefilmed.org;

В другом блоке server аналогично не нужно условие. И не забудьте перечитать конфиг командой nginx -s reload

ответ дан 13 июл 2022 в 12:55

Aleksey Vaganov's user avatar

Aleksey VaganovAleksey Vaganov

2,3822 золотых знака7 серебряных знаков20 бронзовых знаков

2

Вечер добрый! Пересоздайте сертификат letsencript используя cerbot, с параметром no redirect ,
Так как , с большой вероятностью в выбрали 1 параметр , а именно он и влияет на редирект (прописывая уже https в сертификат , за счёт чего и возникает циклическая переадресация ), копаться в настройках nginx нет смысла .

ответ дан 13 июл 2022 в 13:27

priveted JX's user avatar

3

В итоге сработала следующая настройка сервера.

    server {
   if ($host = wherefilmed.org) {
       return 301 https://$host$request_uri;
   } # managed by Certbot


    listen 80;
    server_name wherefilmed.org;
    return 404; # managed by Certbot


}


server {
    listen 80;
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/wherefilmed.org/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/wherefilmed.org/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    server_name wherefilmed.org;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/ugrobug/wherefilmed;
    }

     location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }

}

ответ дан 28 июл 2022 в 7:20

Евгений's user avatar

Если вы видите ошибку Слишком много перенаправлений (ERR_TOO_MANY_REDIRECTS) в своем веб-браузере, значит что-то пошло не так. Также эта ошибка сопровождается сообщением Эта веб-страница имеет цикл перенаправления (This webpage has a redirect loop) и она блокирует загрузку сайта.

Ошибка Слишком много перенаправлений означает, что сайт продолжает циклично перенаправляться между разными адресами и это может никогда не прекратиться. Ваш браузер защищает вас от этого, разрешая только определенное количество перенаправлений (часто около десяти), прежде чем он «устанет» от этого и не выдаст данную ошибку.

Ошибка о цикличных перенаправлениях по-разному проявляется в разных браузерах:

Эта страница не работает (This page isn’t working)
{domain} перенаправил вас слишком много раз. ({domain} redirected you too many times.)
Или
Эта веб-страница имеет цикл перенаправления (This webpage has a redirect loop)
Попробуйте очистить ваши куки. (Try clearing your cookies.)
ERR_TOO_MANY_REDIRECTS

Google Chrome

Страница не перенаправляет должным образом (The page isn’t redirecting properly).
Произошла ошибка при подключении к {domain}. Эта проблема иногда может быть вызвана отключением или отказом принимать куки. (An error occured during a connection to {domain}. This problem can sometimes be caused by disabling or refusing to accept cookies.)

Mozilla Firefox

Safari не может открыть страницу (Safari Can’t Open the Page).
При попытке открыть {domain} произошло слишком много перенаправлений. Это может произойти, если вы открываете страницу, которая перенаправляется на другую страницу, которая затем перенаправляется на исходную страницу. (Too many redirects occurred trying to open {domain}. This might occur if you open a page that is redirected to open another page which is then redirected to open the original page.)

Safari

Очень часто это является результатом конфликтных перенаправлений, одно из которых пытается принудительно установить HTTPS (SSL) соединение, а другое – обратно HTTP (не-SSL), или между URL-адресами с www и без www.

Для таких CMS, ​​как WordPress или Magento, это решается приведением к общему конфигурации base_url или URL-адреса сайта в коде или базе данных с перенаправлением в файле .htaccess.

Как определить причину цикличного перенаправления

Вы можете следить за всеми перенаправлениями с помощью инструментов разработчика в браузере Firefox или Chrome. Эти инструменты обычно открываются нажатием клавиши F12 (или Ctrl+Shift+I). Откройте Сеть (Network), а затем перезагрузите страницу, на которой у вас возникла проблема.

После перезагрузки страницы вы увидите список перенаправлений. Проанализировав результаты, вы сможете найти «виновника» (если срабатывает перенаправление на одну и ту же страницу).

Основные типы перенаправления (код ответа состояния HTTP):

  • 301 редирект (постоянное перенаправление) – означает, что страница или элемент перемещен на постоянной основе, и браузер должен искать его в новом месте. Чаще всего записываются в файле .htaccess.
  • 302 перенаправление или редирект – это временное перенаправление, которое означает, что страница или элемент перемещен временно, и его адрес в будущем может измениться. Чаще всего записываются в коде веб-сайта.

Как исправить ошибку перенаправлений (редиректов)

Шаг №1: Очистить кэш и куки браузера

Очень часто циклические перенаправления могут вызываться файлами cookie в браузере, в которых закэшированы старые редиректы. Данные браузера, такие как история просмотров, кэш, файлы cookie и т.д., могут содержать ошибочные данные, которые вызывают ошибку ERR_TOO_MANY_REDIRECTS. Очистка этих данных – эффективный способ исправить ошибку. Чтобы очистить данные просмотра:

  • В Google Chrome нажмите Ctrl+Shift+Delete, выберите необходимые данные, время жизни данных и нажмите Очистить данные (clear data)
  • В Mozilla Firefox нажмите кнопку «Меню» и выберите «Параметры». Выберите Конфиденциальность, а затем очистить свою недавнюю историю (clear your recent history). Выберите Everything для диапазона времени, а затем нажмите Очистить сейчас (Clear Now).

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

Шаг №2: Попробовать в других браузерах

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

Правильные настройки редиректов (перенаправлений)

Как мы уже упоминали выше, причиной ошибки могут быть неправильные настройки на вашем сайте. В основном, они касаются настроек редиректов в файле .htaccess. Данный файл – это файл конфигурации, который используется для изменения поведения сервера Apache для каждой папки на сайте или сервере. С его помощью можно редактировать только некоторые конфигурации Apache, хотя перенаправления обычно разрешается редактировать.

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

Ниже приведен ряд примеров перенаправления (редиректов) в файле .htaccess, которые обычно используются на сайтах.

Принудительный HTTPS

Приведенный ниже код сначала проверяет, поступил ли запрос на сервер с использованием HTTP или HTTPS. Если в запросе не использовался HTTPS, то конфигурация скажет браузеру перенаправить на HTTPS-версию того же веб-сайта и URL-адреса, которые были запрошены ранее:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Принудительный HTTPS при использовании прокси-сервера

Вы можете использовать прокси-сервер, например, балансировщик нагрузки или веб-брандмауэр, для которого можно настроить использование SSL (HTTPS) на внешнем интерфейсе, но не на внутреннем. Чтобы это работало правильно, вам нужно проверять не только HTTPS в запросе, но и проверять, передал ли прокси-сервер исходный HTTPS-запрос на сервер, используя только HTTP. Код ниже проверяет, был ли запрос перенаправлен с HTTPS, и, если это так, не пытается дополнительно его перенаправлять:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Перенаправление с HTTP на HTTPS в Nginx

Если на вашем веб-сервере работает Nginx, вы можете легко перенаправить весь ваш HTTP-трафик на HTTPS, добавив следующий код в файл конфигурации Nginx:

server {
 listen 80;
 server_name domain.com www.domain.com;
 return 301 https://domain.com$request_uri;
}

Замените domain.com на свой домен.

Принудительно без www

Следующий код в файле .htaccess проверяет, был ли запрошен сайт с www в начале доменного имени. Если www есть в URL, тогда он переписывает запрос и говорит браузеру перенаправить на доменное имя без www:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www. [NC] RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Принудительно с www

Этот код в файле .htaccess проверяет, не было ли запрошено имя сайта с www в начале доменного имени. Если www не включен в URL, тогда он переписывает запрос и говорит браузеру перенаправить на www-версию домена:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www. [NC] RewriteRule (.*) http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Краткий итог

Если на вашем сайте есть редирект в файле .htaccess, что перенаправляет на URL, который не совпадает с тем, что находится в базе данных, вы можете получить ошибку в браузере о бесконечном цикле перенаправления (ERR_TOO_MANY_REDIRECTS), как описано выше.

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

Спасибо, что читаете нас!



  • 9592
  • Опубликовано 22/06/2019



  • Уроки программирования

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

Содержание

  1. Как трактовать err_too_many_redirects
  2. Google Chrome
  3. Mozilla Firefox
  4. Как исправить ошибку чисткой кэша
  5. В файлах cookie для своего сайта
  6. Для страниц WordPress
  7. С сервера
  8. В настройках прокси
  9. Еще способы исправить ошибку “бесконечный цикл перенаправлений”
  10. Проведите HTTPS-анализ
  11. Проверьте настройки в админ-панели WordPress
  12. Временно деактивируйте плагины WordPress

Как трактовать err_too_many_redirects

Причина err_too_many_redirects — это создание слишком большого количества перенаправлений (например, URL1 ссылается на URL2, а тот в свою очередь — обратно на URL1), отправляющих работающий проект в цейтнот бесконечного цикла.

К сожалению, данная ошибка требует от администратора принятия определенных мер.

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

Google Chrome

Для браузера Google Chrome характерно стандартное отображение error. Дословно: “Сайт перенаправил вас слишком много раз”.

Chrome цикл перенаправлений

Mozilla Firefox

Для браузере Mozilla Firefox текст сообщения отличается:

mozilla ошибка redirecting

На скриншоте видно, что ошибка произошла во время подключения к domain.com. Иногда ее вызывает отключение или отказ принимать cookie.

Как исправить ошибку чисткой кэша

Далее рассмотрим все возможные методы решения проблемы.

Но начать рекомендую с банальной очистки кэша в активном браузере, в админке, на своем хостинге и т. д.

В файлах cookie для своего сайта

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

Разберем последовательность действий на примере Google Chrome:

  1. Нажмите на три маленькие точки в правом верхнем углу, далее – «Настройки». chrome настройки
  2. Затем — «Конфиденциальность и безопасность». cookies чистка

Найдите и нажмите на строку «Файлы cookie и другие данные сайтов» — «Все файлы cookie и данные сайтов». удаление всех файлов cookies

  1. Найдите и выберите нужный домен с ошибкой err too many redirects.
  2. Нажмите на значок корзины, чтобы снести все файлы cookie для этого домена. chrome delete cookies
  3. Зайдите на страницу повторно.

Перед очисткой можно просто открыть страницу в режиме «Инкогнито» или зайти на страницы ресурса с другого, только что установленного браузера.

Для страниц WordPress

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

С сервера

Многие хостинги и выделенные серверы имеют в панели управления собственные инструменты для чистки кэша. Хотя отдельные хостеры предоставляют опцию серверного кэширования за отдельную плату.

В настройках прокси

При использовании сторонних служб, например, обратного проксирования, таких как Cloudflare или Sucuri, иногда тоже может возникать err_too_many_redirects, которую можно исправить очисткой кэша на их стороне.

Рассмотрим на примере сервиса Cloudflare: войдите в их панель мониторинга, нажмите «Кэширование» и «Очистить все».

cloufdflare очистить кеш

Еще способы исправить ошибку “бесконечный цикл перенаправлений”

Если все предыдущие действия результата не принесли, следует найти страницы, например, с помощью Redirect Checker.

Другой вариант — скачать и установить расширение Redirect Path для Google Chrome. Оно тоже даст представление обо всех редиректах на вашем проекте с указанием конкретных URL.

redirect path проверка цикла редиректов

Проведите HTTPS-анализ

Порой err_too_many_redirects всплывает ошибкой сразу после переноса сайта на https.

  • Не включайте у себя на проекте HTTPS без установленного, настроенного и действующего SSL-сертификата. Если вы заставите сайт загружаться по HTTPS до момента включения SSL, то мгновенно отправите его в цикл бесконечных перенаправления. Для проверки можете использовать бесплатный онлайн-сервис от Qualys SSL Labs.
  • Не используйте плагин для SSL, обновите жестко прописанные ссылки по http. Есть несколько бесплатных модулей для WordPress, которые помогут автоматически перенаправлять адреса страниц на HTTPS. Этот метод лучше рассматривать в качестве временного решения, пока не обновите прописанные HTTP-ссылки.
  • Проверьте сторонние службы. Err_too_many_redirects нередко индуцируется службами обратного прокси (Cloudflare и подобные), когда для SSL работает опция Flexible и одновременно установлен сертификат. Измените настройки так, как показано на скрине:

cloudflare ssl

Проверьте настройки в админ-панели WordPress

В блоке «Настройки» — «Общие» в CMS WordPress есть два поля, значения в которых должны быть полностью идентичны:

админ вордпресс

Если не представляется возможным попасть в админку WordPress, переопределить эти два адреса можно через файл wp-config.php в корне проекта.

Чтобы зафиксировать равнозначные параметры для WP_HOME и WP_SITEURL, введите следующий код в верхней части файла, поменяв URL на свой.

define('WP_HOME','https://moysite.ru);
define('WP_SITEURL','https://moysite.ru);

Временно деактивируйте плагины WordPress

Быстрый и достаточно универсальный способ поиска причины, вызывающей ошибку — временная деактивация всех дополнительных модулей, таких как Redirection, Yoast SEO Premium и некоторых других модулей редиректов.

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

Теперь вы знаете все способы исправления ошибки err_too_many_redirects.

Также читайте: Что такое script application в Yoast и почему его нужно отключить.

Мы сталкиваемся с массой разных ошибок, работая с нашими клиентами, и ERR_TOO_MANY_REDIRECTS – одна из достаточно распространенных. Обычно она появляется после недавних изменений на WordPress сайте, из-за неверной конфигурации редиректа на сервере или вследствие неправильных настроек сторонних сервисов. Однако не волнуйтесь, эту ошибку очень легко исправить. Ознакомьтесь с представленными ниже рекомендациями, которые подскажут вам способы решения проблемы.

Содержание

  1. Что за зверь такой: ERR_TOO_MANY_REDIRECTS?
  2. Очистка cookies для сайта
  3. Чистим кэш сервера, прокси и браузера
  4. Определяем природу цикла редиректов
  5. Проверяем настройки HTTPS
  6. Проверяем сторонние сервисы
  7. Проверьте настройки вашего WordPress сайта
  8. Временное отключение плагинов WordPress
  9. Проверьте редиректы на сервере

Что за зверь такой: ERR_TOO_MANY_REDIRECTS?

Как и следует из названия ERR_TOO_MANY_REDIRECTS, суть ошибки заключается в том, что ваш сайт вступает в бесконечный цикл перенаправления. Обычно сайт перестает работать (URL 1 указывает на URL 2, а URL 2 указывает на URL 1, или домен редиректит вас слишком много раз), и, в отличие от других ошибок, эта проблема сама по себе не решается, а потому вам придется предпринять некоторые действия для ее исправления.

Существует несколько вариаций этой ошибки, что зависит от браузера, с которым вы работаете.

Google Chrome

В Chrome эта ошибка выводится как ERR_TOO_MANY_REDIRECTS или «This webpage has a redirect loop problem».

Текст ошибки: This page isn’t working. domain.com redirected you too many times.

Mozilla Firefox

В Mozilla Firefox ошибка выводится как «The page isn’t redirecting properly».

Текст ошибки: Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

Microsoft Edge

В Edge ошибка выводится как «Hmmm… can’t reach this page». Что, естественно, не объясняет сути проблемы.

Ниже мы приведем некоторые рекомендации, которые помогут вам исправить эту ошибку.

Очистка cookies для сайта

Google и Mozilla рекомендуют попробовать очистить cookies, что выводится в виде рекомендаций на странице с ошибкой. Cookies иногда могут содержать ошибочные данные, которые приводят к появлению ERR_TOO_MANY_REDIRECTS. Вы можете попробовать следовать этой рекомендации, даже если вы заметили такую ошибку на сайте, который вам не принадлежит (чтобы открыть к нему доступ).

Cookie файлы сохраняют статус «logged in» на сайтах, а также хранят разные настройки, и потому мы рекомендуем просто удалить файлы cookie для сайта, который привел к ошибке. Это никак не повлияет на ваши остальные сеансы и другие сайты, которые вы часто посещаете.

Выполните следующие действия, чтобы очистить cookie в Chrome.

  1. В Google Chrome щелкаем по кнопке с тремя точками в правом верхнем углу экрана. Переходим в Settings.
  2. Прокручиваем вниз и щелкаем по Advanced.
  3. Выбираем Content settings.
  4. Щелкаем по Cookies
  5. Выбираем See all cookies and site data
  6. Ищем домен, для которого выводилась ошибка ERR_TOO_MANY_REDIRECTS. Удаляем cookie, которые в настоящий момент хранятся на вашем компьютере для данного домена. Пробуем снова посетить сайт.

Чистим кэш сервера, прокси и браузера

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

Чистим кэш сервера

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

Чистим кэш прокси-сервиса

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

Cloudflare

Чтобы очистить кэш Cloudflare, зайдите в консоль сервиса, выберите Caching и щелкните по Purge Everything.

Sucuri

Чтобы очистить кэш Sucuri, войдите в консоль сервиса, выберите Performance и щелкните по Clear Cache.

Очистка кэша браузера

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

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

Определяем природу цикла редиректов

Если очистка кэша не помогла, вы можете выяснить причину появления цикла перенаправления. Бесплатный инструмент Redirect Checker поможет вам понять, что именно произошло. То же самое можно сделать и через cURL.

К примеру, сайт ниже имеет цикл 301 редиректов, указывающих на исходный URL, что приводит к большой цепочке ошибочных перенаправлений. Вы можете отследить все редиректы и понять, будет ли цикл вести к исходному URL, или, возможно, это цикл «от HTTP к HTTPS», о чем мы поговорим далее.

Расширение для Chrome под названием Redirect Path также может быть очень полезным. Оно показывает информацию по всем редиректам, которые произошли на сайте (для определенного URL или страницы).

Проверяем настройки HTTPS

Еще одна причина появления ошибки ERR_TOO_MANY_REDIRECTS – это настройки HTTPS. Мы очень часто видели, что ошибка происходит после того, как пользователь перенес свой сайт на HTTPS и либо не завершил процесс, либо настроил что-то некорректно.

  1. Не осуществляйте переход на HTTPS без SSL-сертификата.

С этой проблемой мы сталкиваемся на регулярной основе. Если вы не установите SSL-сертификат на сервер, и при этом заставите свой сайт загружаться по HTTPS, вы тут же войдете в бесконечный цикл перенаправлений. Чтобы исправить это, просто установите SSL-сертификат.

Мы рекомендуем выполнять проверку корректности установки SSL. Сертификаты SSL/TLS требуют установки не только основного сертификата, но еще и корневого и промежуточных сертификатов (цепочки). Все они должны быть корректно установлены.

Перейдите к инструменту проверки SSL, введите свой домен, после чего выполните проверку. Для сканирования SSL/TLS конфигурации на вашем сайте может потребоваться определенное время (порядка минуты).

  1. Не используйте плагины для SSL, обновите ссылки, прописанные в коде.

Существуют бесплатные плагины, которые позволяют реализовать автоматическое перенаправление на HTTPS. Однако мы не советуем данный метод, поскольку сторонние плагины приводят к дополнительным проблемам и вопросам совместимости. Это лишь временное решение. Вы должны вручную обновить все HTTP-ссылки в коде. Для этого вам нужно будет выполнять поиск и замену в WordPress.

  1. Проверьте редиректы с HTTP к HTTPS на сервере

Вполне возможно, что правила перенаправления к HTTPS неправильно сконфигурированы на сервере.

Редирект с HTTP на HTTPS для Nginx

Если ваш веб-сервер работает на Nginx, вы можете легко перенаправить весь трафик с HTTP на HTTPS, воспользовавшись следующим кодом, который нужно добавить в конфигурационный файл Nginx. Рекомендуемый метод перенаправления WordPress на Nginx:

server { listen 80; server_name domain.com www.domain.com; return 301 https://domain.com$request_uri; }

Редирект с HTTP на HTTPS для Apache

Если ваш веб-сервер работает на Apache, то в таком случае вы можете перенаправить ваш трафик с HTTP на HTTPS, воспользовавшись следующим кодом, который нужно добавить в файл .htaccess. Рекомендуемый метод перенаправления WordPress на Apache:

 RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  1. Проверяем на ошибку «Too Many HTTPS Redirects».

Возможно, у вас слишком много HTTPS перенаправлений. Проверить это можно с помощью специального инструмента, который называется Redirect mapper. Ниже приведен пример редиректов, которые неверно настроены. Вы можете видеть, что есть дублирующие HTTPS-редиректы, которые происходят как в www, так и non-www версиях.

Проверяем сторонние сервисы

Ошибка ERR_TOO_MANY_REDIRECTS нередко связана с сервисами обратных прокси, такими как, к примеру, Cloudflare. Обычно это происходит из-за включения опции Flexible SSL, если у вас уже имеется SSL-сертификат, установленный на ваш сервер с WordPress. Почему? Когда выбран пункт Flexible SSL, все запросы к вашему хостинг-серверу передаются через HTTP. Скорее всего, ваш хостинг-сервер уже имеет редирект с HTTP на HTTPS, а потому возникает цикл перенаправлений.

Чтобы исправить это, вам нужно изменить настройки Cloudflare Crypto с Flexible на Full или Full (strict).

Также вы можете использовать их правила Always Use HTTPS для страниц, чтобы перенаправлять всех пользователей на HTTPS без создания цикла. Еще одна вещь, которую нужно соблюдать при работе с Cloudflare – следовать правилам редиректа URL-адресов, используемых для переадресации. Будьте осторожны с созданием редиректа для доменов, указывающих на себя в качестве адресата. Это может вести к бесконечному редиректу.

Проверьте настройки вашего WordPress сайта

Необходимо также проверить настройки вашего WordPress сайта. Есть два поля, которые должны быть грамотно заданы. Еще одна популярная ошибка – вы используете неправильный префикс, который не отвечает вашему сайту (с www или без www).

  • WordPress Address (URL): адрес, используемый для доступа к вашему блогу.
  • Site Address (URL): адрес, используемый для доступа к основным файлам WordPress.

Оба URL должны совпадать, если, конечно, вы не переносили WordPress в отдельный каталог.

Скорее всего, у вас не будет доступа к консоли WordPress. Вы можете переписать эти настройки через файл wp-config.php.

Файл wp-config.php обычно располагается в корне вашего WordPress сайта. К нему можно получить доступ через FTP, SSH или WP-CLI. Чтобы переписать WP_HOME и WP_SITEURL, просто введите следующий код в начало wp-config.php, задав свой домен:

define('WP_HOME','https://yourdomain.com');
define('WP_SITEURL','https://yourdomain.com');

Ниже представлен пример того, как будет выглядеть ваш wp-config.php после всех изменений:

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

Временное отключение плагинов WordPress

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

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

Если метод сработал, вам нужно будет поочередно протестировать каждый установленный плагин. Переименуйте папку с плагинами обратно в plugins, после чего начните переименовывать папки отдельных плагинов до тех пор, пока не найдете виновника. Вы можете также сделать это на тестовом сайте.

Проверьте редиректы на сервере

Помимо редиректов HTTP к HTTPS на вашем сервере, вам нужно проверить, что на сервере отсутствуют другие неграмотно настроенные редиректы. К примеру, один плохой 301 редирект может привести к тому, что сайт перестанет работать. Обычно они располагаются в конфигурационных файлах вашего сервера.

Файл .htaccess для Apache

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

Войдите на сайт по FTP или SSH, после чего переименуйте .htaccess в .htaccess_old. В итоге у вас всегда будет резервная копия файла.

Чтобы пересоздать этот файл, вам нужно просто пересохранить свои постоянные ссылки в WordPress. Однако, если вы столкнулись с ERR_TOO_MANY_REDIRECTS, то вы, скорее всего, не имеете доступа к вашей консоли WordPress. При этом вы можете создать новый файл .htaccess и ввести в него следующий контент. Затем загрузите файл на сервер. Стандартные параметры для файла:

# BEGIN 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>
# END WordPress

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

Конфигурация Nginx

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

Источник: kinsta.com

Добавить комментарий