Как исправить ошибку “Слишком много перенаправлений”: Полное руководство по устранению неполадок
Ошибка "Too Many Redirects" — также известная как redirect loop — является одной из самых раздражающих проблем, с которыми может столкнуться владелец или администратор веб-сайта. Браузер пытается следовать цепочке HTTP-перенаправлений, попадает в бесконечный цикл и в конце концов сдается, оставляя посетителей перед страницей ошибки вместо вашего контента.
В этом подробном руководстве вы узнаете, что именно вызывает redirect loops, как их систематически диагностировать и как применить правильное решение — независимо от того, работаете ли вы на сайте WordPress, пользовательском приложении на плане VPS Hosting или простом сайте на Shared Web Hosting.
Что такое ошибка "Too Many Redirects"?
Когда браузер запрашивает URL, сервер может ответить HTTP-перенаправлением (коды состояния 301, 302, 307 или 308), инструктируя браузер загрузить другой URL. Это нормальное и ожидаемое поведение — например, перенаправление http трафика на https или перенаправление www на non-www.
Redirect loop возникает, когда URL A перенаправляет на URL B, который перенаправляет обратно на URL A (или через более длинную цепочку, которая в конце концов замыкается). После достижения установленного браузером порога (обычно 10–20 перенаправлений) браузер прерывает запрос и отображает:
> ERR_TOO_MANY_REDIRECTS (Chrome)
> The page isn’t redirecting properly (Firefox)
> This webpage has a redirect loop (Safari/Edge)
Ошибка одинакова независимо от браузера — отличается только формулировка.
Что вызывает ошибку "Too Many Redirects"?
Понимание основной причины необходимо перед попыткой исправления. Наиболее частые виновники включают:
1. Неправильно настроенные правила перенаправления
Классический пример: http перенаправляет на https, в то время как одновременно https перенаправляет обратно на http. Каждое перенаправление запускает другое, создавая бесконечный цикл.
2. Неправильная настройка перенаправления HTTP на HTTPS
Если ваш сервер требует HTTPS, но конфигурация SSL Certificates не применена правильно, сервер может перенаправить HTTPS-запрос обратно на HTTP, бесконечно циклируя между двумя протоколами.
3. Конфликты кэша браузера и файлов cookie
Устаревшие файлы cookie или устаревшие данные перенаправления, сохраненные в браузере, могут заставить его следовать старому, неправильному пути перенаправления — даже после того, как проблема на стороне сервера была решена.
4. Неправильная конфигурация CMS (WordPress и другие)
В WordPress поля WordPress Address (URL) и Site Address (URL) в базе данных должны совпадать с конфигурацией вашего фактического домена. Несоответствие — например, одно поле использует http, а ваш сервер требует https — является очень частой причиной redirect loops.
5. Конфликтующие плагины
Плагины кэширования, безопасности и SEO могут каждый реализовать свою собственную логику перенаправления. Когда два или более плагина одновременно пытаются управлять перенаправлениями, они могут конфликтовать и создавать циклы.
6. Конфликты перенаправления на уровне сервера
Перенаправления, настроенные в панели управления хостингом, могут конфликтовать с перенаправлениями, определенными в .htaccess, nginx.conf или параметрах CMS, что приводит к противоречивым инструкциям, которые циклируют бесконечно.
Как исправить ошибку "Too Many Redirects": пошаговое руководство
Работайте через эти методы по порядку. Начните с самых простых исправлений перед переходом к изменениям на уровне сервера.
Метод 1: Очистите кэш браузера и файлы cookie
Перед тем как трогать какую-либо конфигурацию сервера, исключите проблему на стороне браузера. Устаревшие файлы cookie и кэшированные ответы перенаправления — удивительно частая причина.
Google Chrome:
- Нажмите Ctrl+Shift+Delete (Windows/Linux) или Cmd+Shift+Delete (Mac)
- Установите временной диапазон на All time
- Установите флажки Cookies and other site data и Cached images and files
- Нажмите Clear data
Mozilla Firefox:
- Перейдите в Settings → Privacy & Security
- В разделе Cookies and Site Data нажмите Clear Data
- Выберите оба варианта и подтвердите
Microsoft Edge / Safari:
Следуйте эквивалентным шагам в параметрах конфиденциальности каждого браузера.
После очистки перезагрузите страницу. Если ошибка исчезает, проблема была на стороне браузера. Если она сохраняется, переходите к следующему методу.
> Совет профессионала: Протестируйте URL в приватном/инкогнито окне немедленно. Режим инкогнито не использует кэшированные данные или файлы cookie, поэтому если сайт загружается там правильно, проблема определенно на стороне браузера.
Метод 2: Проверьте параметры URL CMS (WordPress)
Если вы работаете на WordPress, неправильные параметры URL являются одной из наиболее частых причин redirect loops.
Через панель администратора WordPress:
- Перейдите в Settings → General
- Убедитесь, что оба поля WordPress Address (URL) и Site Address (URL) идентичны и используют правильный протокол (http или https) и поддомен (www или non-www)
- Сохраните изменения
Если вы не можете получить доступ к панели администратора (потому что redirect loop препятствует входу), отредактируйте файл wp-config.php напрямую через FTP или файловый менеджер хостинга:
Замените example.com на ваш фактический домен. Эти константы переопределяют значения базы данных и немедленно разорвут цикл.
Через базу данных WordPress (phpMyAdmin):
- Откройте phpMyAdmin и выберите вашу базу данных WordPress
- Откройте таблицу wp_options
- Найдите строки с option_name = siteurl и home
- Убедитесь, что оба значения точно совпадают с вашим предполагаемым URL
Метод 3: Временно отключите плагины WordPress
Плагины кэширования, безопасности и SEO часто являются виновниками конфликтов перенаправления. Самый быстрый способ определить виновный плагин — отключить все сразу.
Если вы можете получить доступ к панели администратора:
- Перейдите в Plugins → Installed Plugins
- Выберите все плагины и выберите Deactivate из меню массовых действий
Если вы не можете получить доступ к панели (redirect loop блокирует вход):
- Подключитесь к вашему серверу через FTP или SSH
- Перейдите в /wp-content/
- Переименуйте папку plugins в что-то вроде plugins-old
- WordPress автоматически отключит все плагины
Перезагрузите сайт. Если ошибка исчезла, переименуйте папку обратно в plugins и переактивируйте плагины по одному, тестируя после каждой активации, чтобы определить конфликтующий плагин.
Частые виновники включают: Really Simple SSL, Redirection, Yoast SEO, W3 Total Cache и Wordfence.
Метод 4: Проверьте ваш файл .htaccess (серверы Apache)
На серверах на основе Apache файл .htaccess управляет переписыванием URL и правилами перенаправления. Конфликтующие или дублирующиеся правила здесь — очень частая причина redirect loops.
Доступ к .htaccess:
- Через FTP/SFTP: файл находится в корневом каталоге вашего веб-сайта (например, /public_html/.htaccess)
- Через файловый менеджер cPanel: включите "Show Hidden Files", чтобы увидеть .htaccess
На что обратить внимание:
Ищите директивы RewriteRule и RewriteCond. Ищите правила, которые могут создать циклическую логику — например, правило, перенаправляющее на HTTPS, которое срабатывает даже когда запрос уже HTTPS.
Правильная, не циклирующая конфигурация .htaccess для HTTPS + www:
Ключевой принцип: Каждое правило перенаправления должно включать условие, которое предотвращает его срабатывание, когда запрос уже совпадает с целью. Условие %{HTTPS} off гарантирует, что перенаправление HTTPS срабатывает только для HTTP-запросов — никогда для HTTPS.
Если вы не уверены в своих правилах .htaccess, временно переименуйте файл в .htaccess-old. WordPress и большинство CMS автоматически создадут чистую версию.
Метод 5: Проверьте перенаправления на уровне сервера в вашей панели управления
Многие панели управления хостингом (cPanel, Plesk, DirectAdmin) позволяют настраивать перенаправления независимо от вашего файла .htaccess или CMS. Эти перенаправления на уровне сервера могут конфликтовать с перенаправлениями на уровне приложения.
Шаги:
- Войдите в панель управления хостингом
- Ищите раздел Redirects (в cPanel это находится в Domains → Redirects)
- Просмотрите все настроенные перенаправления
- Удалите все, которые дублируют или противоречат перенаправлениям, уже обработанным вашей CMS или .htaccess
Если вы управляете высоконагруженным сайтом на Dedicated Servers, также проверьте файлы конфигурации виртуального хоста Nginx или Apache на предмет директив перенаправления, которые могут конфликтовать с правилами на уровне приложения.
Метод 6: Проверьте конфигурацию SSL/HTTPS
Если redirect loop возникает только на https URL, проблема может быть в том, как настроены ваш SSL-сертификат и принудительное использование HTTPS.
Распространенный сценарий: В панели управления хостингом включено "Force HTTPS", И ваш .htaccess также содержит перенаправление HTTP на HTTPS, И ваша CMS имеет активный плагин HTTPS. Все три срабатывают одновременно и конфликтуют.
Исправление: Выберите один уровень для обработки перенаправления HTTPS и отключите его во всех остальных. Рекомендуемый подход — обработать его на уровне сервера (конфигурация виртуального хоста или панель управления) и удалить из .htaccess и любых плагинов.
Убедитесь, что ваш SSL-сертификат действителен и правильно установлен. Истекший или неправильно настроенный сертификат иногда может вызвать неожиданное поведение перенаправления. Если вам нужен новый сертификат, SSL Certificates от AlexHost легко развернуть и поддерживать.
Проверка исправления
После применения любого из вышеперечисленных исправлений:
- Снова очистите кэш браузера и файлы cookie (изменения не будут видны, если старые перенаправления кэшированы)
- Протестируйте в инкогнито/приватном окне, чтобы подтвердить, что исправление работает без кэшированных данных
- Используйте онлайн-инструмент проверки перенаправлений, такой как Redirect Checker или httpstatus.io, чтобы отследить полную цепочку перенаправлений и подтвердить отсутствие циклов
- Протестируйте несколько вариантов URL: example.com, www.example.com, https://example.com и https://www.example.com — все четыре должны разрешаться в один канонический URL с максимум одним или двумя перенаправлениями
Как предотвратить redirect loops в будущем
Исправление redirect loop — одно, а предотвращение его повторения — другое. Следуйте этим лучшим практикам:
Установите один канонический URL
Решите окончательно одну каноническую форму вашего домена: www.example.com или example.com. Настройте все перенаправления на всех уровнях (конфигурация сервера, .htaccess, параметры CMS, плагины) на указание на эту единственную версию. Задокументируйте свое решение, чтобы будущие изменения не случайно не переввели конфликты.
Реализуйте перенаправления на одном уровне только
Не настраивайте одно и то же перенаправление в панели управления, .htaccess и плагине одновременно. Выберите один авторитетный уровень и отключите остальные. Это значительно снижает риск конфликтов.
Минимизируйте цепочки перенаправлений
Каждое перенаправление добавляет задержку и увеличивает риск циклов. Стремитесь к прямым перенаправлениям: example.com → www.example.com. Избегайте цепочек вроде example.com → www.example.com → https://www.example.com. Инструменты вроде Screaming Frog могут проверить ваш сайт на предмет цепочек перенаправлений.
