Если вы видите ошибку Слишком много перенаправлений (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):
.htaccess
.
Шаг №1: Очистить кэш и куки браузера
Очень часто циклические перенаправления могут вызываться файлами cookie в браузере, в которых закэшированы старые редиректы. Данные браузера, такие как история просмотров, кэш, файлы cookie и т.д., могут содержать ошибочные данные, которые вызывают ошибку ERR_TOO_MANY_REDIRECTS
. Очистка этих данных – эффективный способ исправить ошибку. Чтобы очистить данные просмотра:
Ctrl+Shift+Delete
, выберите необходимые данные, время жизни данных и нажмите Очистить данные (clear data)
После очистки данных браузера вы можете попробовать зайти на сайт и посмотреть, исчезла ли ошибка.
Шаг №2: Попробовать в других браузерах
Ошибка ERR_TOO_MANY_REDIRECTS
может возникать только в браузере, который вы используете. Вы можете попробовать открыть тот же URL в другом браузере. Если ошибка не устраняется, значит проблема может возникать на стороне сервера.
Как мы уже упоминали выше, причиной ошибки могут быть неправильные настройки на вашем сайте. В основном, они касаются настроек редиректов в файле .htaccess. Данный файл – это файл конфигурации, который используется для изменения поведения сервера Apache для каждой папки на сайте или сервере. С его помощью можно редактировать только некоторые конфигурации Apache, хотя перенаправления обычно разрешается редактировать.
У вас может быть несколько файлов .htaccess
, которые каскадно влияют на каталоги. Если у вас есть один .htaccess
в родительском каталоге, и другой в подкаталоге, они оба будут влиять на этот подкаталог. Т.е., это может быть причиной конфликта между этими файлами на разных уровнях.
Ниже приведен ряд примеров перенаправления (редиректов) в файле .htaccess
, которые обычно используются на сайтах.
Приведенный ниже код сначала проверяет, поступил ли запрос на сервер с использованием HTTP или HTTPS. Если в запросе не использовался HTTPS, то конфигурация скажет браузеру перенаправить на HTTPS-версию того же веб-сайта и URL-адреса, которые были запрошены ранее:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Вы можете использовать прокси-сервер, например, балансировщик нагрузки или веб-брандмауэр, для которого можно настроить использование 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]
Если на вашем веб-сервере работает Nginx, вы можете легко перенаправить весь ваш HTTP-трафик на HTTPS, добавив следующий код в файл конфигурации Nginx:
server { listen 80; server_name domain.com www.domain.com; return 301 https://domain.com$request_uri; }
Замените domain.com
на свой домен.
Следующий код в файле .htaccess
проверяет, был ли запрошен сайт с www в начале доменного имени. Если www есть в URL, тогда он переписывает запрос и говорит браузеру перенаправить на доменное имя без www:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\. [NC] RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Этот код в файле .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
. Также, с помощью данной статьи, вы сможете сами протестировать, найти причину ошибки, а также устранить ее самостоятельно.
Спасибо, что читаете нас!
Выбор мастера для ремонта и перетяжки мебели — задача, которая требует вдумчивого подхода. Ведь от…
Выбор идеального хостинга под свой сайт может быть довольно запутанным делом, особенно когда существует так…
Чтобы избегать ошибок, нужно набираться опыта; чтобы набираться опыта, надо делать ошибки Лоуренс Питер
Краткое определение Черного SEO Черное СЕО (или Черная оптимизация) — это любая практика, целью которой…
Получение водительских прав категории C открывает двери к профессиональной деятельности, связанной с управлением грузовыми автомобилями.…
View Comments
ни черта не понятно