Слишком много перенаправлений: что означает эта ошибка и как ее исправить
Опубликовано: 2022-09-27«Слишком много перенаправлений», также известная как цикл перенаправления, — это ошибка, которую браузер вернет, если запрошенная веб-страница не сможет загрузиться из-за бесконечного количества перенаправлений, которым он должен следовать, чтобы получить любой контент с сервера. Циклы перенаправления часто могут быть вызваны конфликтующими перенаправлениями на стороне сервера или неправильной конфигурацией CDN.
В этом подробном руководстве по исправлению ошибки «Слишком много перенаправлений» вы узнаете, где можно настроить перенаправления, каковы наиболее распространенные причины циклов перенаправления и как их устранить шаг за шагом.
Что такое редиректы и как они работают?
Перенаправления веб-сайтов можно определить как шаги, которые необходимо предпринять во время доставки контента, чтобы найти местоположение запрошенной веб-страницы. Хотя для вас может показаться, что изменение, достигнутое с помощью правила перенаправления, отражает только то, как адрес веб-сайта отображается в адресной строке, ваш браузер выполняет ряд операций за кулисами, чтобы определить, куда ведет каждое перенаправление, прежде чем он сможет загрузить любой контент из конечного местоположения, определенного путем перенаправления.
Форсирование HTTPS, www-версии веб-сайта или загрузки другого доменного имени — перенаправления широко используются при хостинге веб-сайтов, что позволяет настраивать доставку контента. Существует несколько способов настроить перенаправление домена, и если они настроены правильно, у браузеров не будет проблем с соблюдением созданных вами правил.
Временные и постоянные перенаправления
Существует два основных типа редиректов, которые можно настроить — временные и постоянные. В зависимости от типа обнаруженного перенаправления веб-сервер вернет код состояния HTTP 302 или 301.
Код ответа HTTP 302 показывает, что определенный веб-адрес временно перенаправляется в другое место. Однако иногда вы можете увидеть, что временное перенаправление выполняется, когда вы удалили постоянное правило перенаправления со своего веб-сайта, но не очистили его кеш, что предотвратило видимость изменений.
Это может произойти, если вы используете какое-либо решение для кэширования, в том числе один из плагинов для кэширования WordPress. Ваш браузер также будет хранить кешированную версию любого посещаемого вами веб-сайта, которая будет включать старые перенаправления.
Постоянные перенаправления возвращают код состояния HTTP 301 и указывают на то, что ваш сайт или определенная страница на нем были окончательно перемещены, что, в случае, если это перенаправление на HTTPS или www-версию сайта, не обязательно означает, что его местоположение на файловая система изменилась.
Каковы наиболее распространенные редиректы?
Перенаправление с веб-протокола HTTP на HTTPS и с версии веб-сайта без www на версию с www — это два наиболее часто настраиваемых правила. Перенаправления на HTTPS обеспечивают шифрование всего веб-трафика с помощью SSL-сертификата, а перенаправления на www часто используются для интеграции сети доставки контента с вашим веб-сайтом с помощью записи CNAME.
HTTP в HTTPS
Перенаправление с HTTP на HTTPS, часто называемое форсированием HTTPS, может быть настроено таким образом, чтобы контент не доставлялся посетителю веб-сайта через небезопасное HTTP-соединение. Если на вашем веб-сайте установлен действующий сертификат SSL/TLS, вам, как правило, не нужно принудительно использовать HTTPS вручную, но добавление такого перенаправления может быть одним из способов работы со смешанным контентом.
Смешанное содержание
Смешанный контент на веб-сайте можно определить как ситуацию, когда базовый HTML-файл загружается по HTTPS, а другие упомянутые ресурсы, включая изображения, файлы Javascript или CSS, доставляются посетителю по HTTP. Даже если у вас установлен действующий SSL-сертификат, браузеры все равно будут отображать предупреждение системы безопасности, если на веб-странице будет обнаружено смешанное содержимое.
Настройка перенаправления для решения проблемы со смешанным контентом, как правило, не лучшее решение. Вместо этого вы должны обновить все URL-адреса (унифицированные указатели ресурсов) в базе данных вашего веб-сайта, чтобы включить протокол HTTPS вместо HTTP. Это можно сделать вручную, используя функцию поиска и замены, которую предлагает WP CLI, или плагин WordPress. Для других систем управления контентом вам нужно будет изменить адреса с помощью инструмента администрирования базы данных, такого как phpMyAdmin, или запустив запросы MySQL/MariaDB из командной строки.
3 основных места, где можно настроить переадресацию
Как правило, перенаправления можно настроить в одном из трех основных мест:
- Конфигурация веб-сервера . Глобальные файлы конфигурации, используемые веб-сервером, содержат настройки, которые обычно применяются ко всем размещенным веб-сайтам, поэтому добавлять перенаправления на один из них не рекомендуется. Использование локальных файлов конфигурации, созданных для каждого веб-сайта индивидуально, является стандартом для настройки редиректов на стороне сервера.
- Настройка системы управления контентом . Ваша система управления контентом хранит адрес вашего веб-сайта в базе данных как константу, которую можно использовать для принудительного использования HTTPS или загрузки его версии с www.
- Конфигурация сети доставки контента . Ваш CDN будет использовать свои собственные перенаправления, которые будут определять, как именно контент извлекается с исходного сервера и доставляется посетителям веб-сайта.
Перенаправления в файлах конфигурации веб-сервера
Вы можете настроить правила перенаправления локально в одном из файлов конфигурации, которые будет читать ваш веб-сервер. Когда Apache используется в качестве веб-сервера, правила перенаправления обычно настраиваются в локальном файле .htaccess веб-сайта. Если используется NGINX, перенаправления настраиваются в блоке сервера NGINX, который представляет глобальную конфигурацию вашего веб-сайта.
Ниже вы можете увидеть два перенаправления, которые можно добавить в .htaccess — одно принудительно использует HTTPS, а другое отправляет все веб-запросы на www-версию веб-сайта. Необходимо соблюдать строгие правила синтаксиса, иначе вы рискуете отключить свой веб-сайт, если Apache обнаружит какие-либо синтаксические ошибки в одном из локальных файлов конфигурации.
Если вы используете какие-либо плагины перенаправления для WordPress, они, скорее всего, также запишут свои перенаправления в ваш локальный файл .htaccess.
Перенаправления в конфигурации WordPress
WordPress и другие системы управления контентом помещают адрес веб-сайта в базу данных, и настройка загружается каждый раз, когда запрашивается любой контент. Адрес представляет собой URL-адрес, который состоит из имени домена и веб-протокола, HTTP или HTTPS. Изменив URL-адреса в базе данных, вы можете перенаправить свой веб-сайт на www или принудительно использовать HTTPS, если установлен сертификат SSL/TLS.
WordPress использует константу WP_HOME для определения настройки адреса WordPress и WP_SITEURL в качестве адреса сайта, которые хранятся в таблице wp_options как siteurl и home. Параметр «Адрес WordPress» относится к местоположению установки WordPress, а «Адрес сайта» представляет собой URL-адрес, который необходимо ввести в адресной строке браузера, чтобы открыть свой веб-сайт.
Перенаправления принудительно CDN
Конфигурация вашей сети доставки контента определяет, как она может извлекать запрошенные веб-страницы с исходного сервера и доставлять их посетителям вашего веб-сайта — по HTTP или HTTPS. Точные процедуры определяются выбранным режимом шифрования. Современные сети доставки контента предлагают три основных типа шифрования:
- Полное или сквозное шифрование . Сквозное шифрование гарантирует использование HTTPS на всех этапах доставки контента. Это означает, что все веб-запросы от браузера к CDN и от CDN к исходному серверу всегда отправляются через HTTPS. Для сквозного шифрования требуются два SSL-сертификата — один установлен на исходном сервере, а другой реализован CDN.
- Гибкое или частичное шифрование . Частичное шифрование заставляет все подключения из браузера к CDN проходить через HTTPS, в то время как CDN будет подключаться к исходному серверу через HTTP. Однако ваш веб-сайт по-прежнему будет отображаться как безопасный во всех браузерах.
- Без шифрования . Если шифрование отключено, доставка контента будет осуществляться через HTTP, и все браузеры будут отображать предупреждение системы безопасности при загрузке вашего веб-сайта.
Если CDN пытается инициировать соединение через HTTPS, но ваш веб-сервер перенаправляет HTTPS-запросы на HTTP, создается цикл перенаправления, в результате чего на вашем веб-сайте появляется ошибка слишком большого количества перенаправлений.
Что означает ошибка «Слишком много перенаправлений»?
«Слишком много перенаправлений», часто называемое циклом перенаправления, — это сообщение об ошибке, указывающее на конфликт, возникающий во время доставки контента, вызванный двумя конкурирующими перенаправлениями. При обнаружении цикла перенаправления современные браузеры возвращают один из следующих вариантов ошибки:
- Страница неправильно перенаправляется . Вы можете увидеть это сообщение об ошибке в Firefox.
- Страница не работает. ERR_TOO_MANY_REDIRECTS . Google Chrome покажет эту ошибку, если застрял в цикле перенаправления.
- Safari не может открыть страницу, потому что произошло слишком много перенаправлений . Таким образом, Safari сообщит вам, какие конфликты перенаправления необходимо устранить, прежде чем веб-сайт можно будет загрузить.
Чтобы исправить ошибку «слишком много перенаправлений», вам нужно будет просмотреть перенаправления, настроенные в .htaccess и принудительные системой управления контентом, а также проверить, какой режим шифрования используется сетью доставки контента, если он у вас есть.
3 наиболее распространенных неправильных конфигурации, которые вызывают петлю перенаправления на вашем веб-сайте, и как их решить
Прохождение всех перенаправлений для выявления конфликта — непростая задача, особенно если некоторые из них добавлены в глобальную конфигурацию веб-сервера, что делает их применимыми ко всему серверу. Однако есть некоторые очень часто встречающиеся неправильные настройки, которые неизбежно приводят к петлям перенаправления.
Три наиболее распространенные причины появления сообщения «Слишком много переадресаций» на вашем сайте:
- Отсутствует действующий сертификат SSL/TLS . Цикл перенаправления может возникнуть, если срок действия вашего SSL-сертификата истек или с ним возникли какие-либо другие проблемы, но ваш веб-сайт все еще пытается принудительно использовать HTTPS.
- Неверные настройки адреса веб-сайта CMS . Если протокол, указанный в настройках адреса веб-сайта, используемых WordPress или другой системой управления контентом, конфликтует с другими настроенными переадресациями, это приведет к ошибке слишком много перенаправлений.
- Выбран неправильный режим шифрования CDN . Особенно часто встречаются петли перенаправления при переключении на полное шифрование в конфигурации CDN. Если исходный сервер не соответствует требованиям для использования сквозного шифрования, это может привести к проблемам.
Действительный сертификат SSL/TLS отсутствует
Действительный сертификат SSL/TLS, подписанный ЦС, установленный на веб-сайте, обеспечивает шифрование всего веб-трафика при доставке с сервера в браузер. Кроме того, HTTPS, скорее всего, принудительно используется на уровне сервера, который отлично работает до тех пор, пока не истечет срок действия вашего SSL-сертификата, и он не будет обновляться автоматически. Это может произойти по следующим причинам:
- Автоматическое обновление сертификатов SSL/TLS не включено . Если SSL не был продлен автоматически, вам придется заказать новый сертификат и установить его.
- Проверка домена SSL не удалась . Давайте зашифруем или Sectigo, один из наиболее широко используемых поставщиков SSL, предлагающих бесплатные сертификаты, реализует различные задачи для проверки того, что вы контролируете доменные имена, для которых необходимо выпустить новый сертификат. Если проверка домена не пройдена, новый сертификат не будет установлен до тех пор, пока вы не устраните проблему, которая блокирует запрос проверки.
- Срок действия корневого или одного из промежуточных сертификатов истек . Когда это произойдет, вам нужно будет переустановить свой сертификат, как только поставщик SSL решит проблему на своей стороне.
Как обратиться
Проверьте, установлен ли на вашем веб-сайте действующий сертификат, с помощью одного из средств проверки SSL. Если срок его действия истек или средство проверки SSL показывает какие-либо другие проблемы, переустановите сертификат. Если Let’s Encrypt или Sectigo не смогут выдать бесплатный сертификат, вам нужно будет проверить, что может блокировать запрос на проверку.
Одна из причин, по которой не удается выполнить проверку домена SSL, заключается в наличии интегрированной сети доставки контента, особенно если в последний раз, когда Let's Encrypt или Sectigo выпускали сертификат, он еще не был настроен. Если вам нужно установить новый бесплатный SSL-сертификат, приостановите CDN, чтобы ваш веб-сайт напрямую указывал на сервер, возвращая его основной IP-адрес, а не IP-адрес, принадлежащий сети доставки контента. Таким образом, вы можете обновить сертификат на исходном сервере, чтобы продолжить использовать сквозное шифрование.
Настройки адреса веб-сайта CMS неверны
WordPress и все другие системы управления контентом могут принудительно перенаправлять на HTTPS или www, сохраняя адрес вашего веб-сайта в базе данных и загружая его каждый раз, когда запрашивается любой контент. Если настройки адреса сайта настроены неправильно — с использованием неправильного протокола или доменного имени — это вызовет проблемы, в том числе появление слишком большого количества ошибок переадресации.
Как обратиться
Если у вас установлен SSL-сертификат, особенно если сквозное шифрование обеспечивается конфигурацией CDN, используйте HTTPS как в настройках адреса WordPress, так и в настройках адреса сайта. Если ваш веб-сайт перенаправлен на версию с www, участники WP_SITEURL и WP_HOME должны отразить это.
Откройте меню «Общие настройки» на панели инструментов WordPress и исправьте значения, назначенные для адреса WordPress и адреса сайта, там, где это необходимо. Нажмите «Сохранить изменения», чтобы WordPress изменил настройки в базе данных.
Выбран неправильный режим шифрования CDN
Не может быть никаких конфликтов между перенаправлениями, настроенными на исходном сервере, и режимом шифрования, используемым CDN, иначе вы увидите ошибку «Слишком много перенаправлений» при попытке загрузить ваш сайт в любом браузере. Убедитесь, что вы выбрали правильный режим шифрования, который лучше всего соответствует потребностям вашего сайта.
Поскольку сеть доставки контента всегда шифрует трафик между своими серверами и браузером, если вы не отключите шифрование полностью, вы можете не устанавливать SSL на исходном сервере. Выберите частичное шифрование и убедитесь, что вы не принудительно используете HTTPS на уровне сервера, чтобы избежать проблем с приемом запросов от CDN через HTTP.
Если выбрано сквозное шифрование, на исходном сервере должен быть установлен действительный сертификат SSL, чтобы CDN могла подключаться через HTTPS. Если вы не можете установить новый сертификат вручную, каждый раз, когда необходимо обновить SSL, временно приостанавливайте работу CDN, чтобы избежать проблем с проверкой домена.
Как обратиться
Просмотрите текущую настройку и решите, какой режим шифрования необходимо выбрать. Переключитесь на другой тип шифрования, чтобы исправить ошибку «Слишком много перенаправлений» на вашем веб-сайте, вызванную конфликтующим перенаправлением на исходном сервере или отсутствием на нем SSL, необходимого для поддержки сквозного шифрования.
Как исправить «Слишком много перенаправлений» за 3 шага
В следующих шагах вы узнаете, как определить конфликтующие переадресации и быстро устранить цикл переадресации на своем веб-сайте.
Шаг 1. Проверьте путь перенаправления вашего сайта
Многие источники советуют очистить кеш браузера в качестве первого шага к устранению неполадок с петлями перенаправления. Однако, как и в случае с любой другой ошибкой, она будет работать только в том случае, если проблема была решена на сервере, но браузер по-прежнему хранит в своем кеше неработающую версию вашего сайта. Как правило, после внесения каких-либо изменений на ваш веб-сайт вы можете очистить его кеш, чтобы увидеть их отражение.
Первый шаг к исправлению «Слишком много перенаправлений» — это проследить путь перенаправления вашего веб-сайта, чтобы увидеть, где именно зависает браузер. Лучший способ сделать это — использовать одну из программ проверки перенаправления.
Все или большинство средств проверки перенаправления используют cURL, отличный инструмент командной строки для передачи данных с использованием различных сетевых протоколов. Мы можем использовать его для получения информации заголовка HTTP, которая покажет вам, что именно происходит, когда вы пытаетесь загрузить свой веб-сайт.
Сохраните следующий простой сценарий Bash в файл с именем redirects.sh после подключения к серверу через SSH. Сделайте его исполняемым, запустив chmod +x redirects.sh.
Запустите скрипт, передав его доменному имени вашего сайта. Например, ./redirects.sh wordpress.com.
Шаг 2. Определите конфликтующие перенаправления
Изучите вывод, который вы получили, запустив скрипт выше. Он расскажет вам, какие перенаправления вызывают появление «Слишком много перенаправлений», когда браузер отказывается следовать конфликтующим правилам. В приведенном ниже выводе мы видим, что существует бесконечное перенаправление с HTTP и HTTPS.
Обратите внимание на коды состояния возврата каждого перенаправления. Постоянные перенаправления часто исходят из файла .htaccess веб-сайта, тогда как временные перенаправления обычно генерируются в коде веб-сайта, поэтому они контролируются WordPress или другой используемой вами системой управления контентом.
Шаг 3. Устраните цикл перенаправления
В зависимости от выявленных вами конфликтующих правил перенаправления вы будете знать, где их зациклить. Как мы уже говорили, необходимо проверить три основных момента: ваш локальный файл .htaccess, настройки адреса веб-сайта, хранящиеся в базе данных вашего веб-сайта CMS, и режим шифрования, выбранный в конфигурации CDN.
Если цикл перенаправления возникает, когда ваш веб-сайт пытается перенаправить между HTTP и HTTPS, проверьте, установлен ли у вас действующий сертификат SSL/TLS и какой режим шифрования выбран в вашей конфигурации CDN, если у вас есть какая-либо интеграция с вашим веб-сайтом. Проверьте адрес сайта и адрес WordPress, указанные для вашего веб-сайта и сохраненные в базе данных WordPress.
Следуйте инструкциям, приведенным в предыдущем разделе руководства, чтобы устранить распространенные неправильные настройки и исправить «Слишком много перенаправлений» на вашем веб-сайте.
Вывод
Сообщение об ошибке «Слишком много перенаправлений», также известное как цикл перенаправления, появляется на вашем веб-сайте, когда браузеру не удалось загрузить какой-либо контент из-за большого количества последовавших перенаправлений. Чтобы исправить петлю перенаправления, вам необходимо устранить конфликт, существующий в пути перенаправления.
Ведение бизнеса в Интернете сопряжено с трудностями, и не всегда возможно тратить часы на настройку серверной инфраструктуры и исправление ошибок. Это также не очень хорошая идея, когда наличие правильных решений может избавить от необходимости нанимать специальную команду, чтобы ваш сайт работал без каких-либо проблем.
BackupBuddy и iThemes Security Pro, защищающие около миллиона веб-сайтов WordPress, являются ведущими в отрасли решениями для обеспечения безопасности на уровне приложений и восстановления данных. Регулярные проверки уязвимостей и сканирование вредоносных программ, предоставляемые функцией сканирования сайта, позволяют значительно уменьшить поверхность атаки и защитить ваш веб-сайт от всех известных уязвимостей. Автоматическое резервное копирование и простое восстановление одним щелчком мыши — BackupBuddy позволяет восстанавливаться после всех вредоносных атак и распространенных ошибок.
Лучший плагин безопасности WordPress для защиты и защиты WordPress
В настоящее время WordPress поддерживает более 40% всех веб-сайтов, поэтому он стал легкой мишенью для хакеров со злым умыслом. Плагин iThemes Security Pro устраняет сомнения в безопасности WordPress, чтобы упростить защиту вашего веб-сайта WordPress. Это похоже на штатного эксперта по безопасности, который постоянно отслеживает и защищает ваш сайт WordPress для вас.
Кики имеет степень бакалавра в области управления информационными системами и более двух лет опыта работы с Linux и WordPress. В настоящее время она работает специалистом по безопасности в Liquid Web и Nexcess. До этого Кики была частью группы поддержки Liquid Web Managed Hosting, где она помогла сотням владельцев веб-сайтов WordPress и узнала, с какими техническими проблемами они часто сталкиваются. Ее страсть к писательству позволяет ей делиться своими знаниями и опытом, чтобы помогать людям. Помимо технологий, Кики любит узнавать о космосе и слушать подкасты о реальных преступлениях.