Cloudflare Redirect Loop — как исправить ERR_TOO_MANY_REDIRECTS

Cloudflare Redirect Loop — это циклический редирект между Cloudflare, браузером и origin-сервером. Обычно пользователь видит ошибку ERR_TOO_MANY_REDIRECTS или сообщение вроде «страница перенаправила вас слишком много раз».

Проблема почти всегда связана не с самим браузером, а с конфликтом HTTPS-настроек, редирект-правил или SSL-режима в Cloudflare. Хорошая новость: эту ошибку обычно можно быстро убрать, если проверять настройки в правильном порядке.

Быстрое решение

  • Проверьте SSL/TLS Encryption mode в Cloudflare.
  • Если у origin есть нормальный SSL, переключите режим на Full или Full (strict).
  • Убедитесь, что origin не делает редирект HTTP → HTTPS, если в Cloudflare стоит Flexible.
  • Проверьте, не делает ли origin редирект HTTPS → HTTP при режиме Full или Full (strict).
  • Проверьте Always Use HTTPS, HSTS и Redirect Rules в Cloudflare.
  • Уберите дублирующие редиректы из .htaccess, Nginx, WordPress и плагинов.
  • Очистите кэш Cloudflare и браузера после исправлений.

Что означает Cloudflare Redirect Loop

Ошибка Cloudflare Redirect Loop означает, что запрос пользователя бесконечно гоняется между двумя или несколькими версиями URL. Например, сайт переводит посетителя с HTTP на HTTPS, а другая настройка возвращает его обратно на HTTP. В итоге браузер останавливает загрузку и показывает ERR_TOO_MANY_REDIRECTS.

По документации Cloudflare, это типичный результат конфликта между настройками шифрования, edge-сертификатами и redirect-правилами. То есть проблема почти всегда в конфигурации, а не в «поломке интернета».

Почему возникает ERR_TOO_MANY_REDIRECTS в Cloudflare

Основные причины такие:

  • неправильно выбран режим SSL/TLS Encryption mode;
  • на origin стоят принудительные редиректы, конфликтующие с режимом Cloudflare;
  • включён Always Use HTTPS и одновременно такой же редирект настроен на сервере;
  • включён HSTS и он конфликтует с текущей HTTPS-схемой;
  • неправильно настроены Redirect Rules;
  • редиректы одновременно заданы в WordPress, плагинах, .htaccess, Nginx и Cloudflare.

Самая частая причина — неправильный SSL mode

Cloudflare отдельно объясняет, что redirect loop очень часто вызван неверным режимом шифрования. Если домен работает в режиме Flexible, Cloudflare отправляет запросы на origin по HTTP. Если origin при этом принудительно отправляет все HTTP-запросы на HTTPS, получается цикл: Cloudflare идёт по HTTP, origin отправляет назад на HTTPS, и всё повторяется.

Обратный сценарий тоже возможен. При режиме Full или Full (strict) Cloudflare подключается к origin по HTTPS. Если origin зачем-то перенаправляет HTTPS обратно на HTTP, возникает новый цикл редиректов.

Когда ошибка появляется чаще всего

На практике Cloudflare Redirect Loop часто возникает после подключения домена к Cloudflare, включения SSL, перехода с Flexible на Full, переноса сайта на другой хостинг, замены сертификата или включения новых Redirect Rules.

Также это типичная ошибка после установки WordPress-плагинов, которые сами начинают форсировать HTTPS, www/non-www или канонический домен, не учитывая настройки Cloudflare.

Как исправить Cloudflare Redirect Loop: пошаговая инструкция

1. Проверьте SSL/TLS Encryption mode

Откройте Cloudflare → SSL/TLS и посмотрите текущий режим:

  • Flexible — Cloudflare идёт к origin по HTTP;
  • Full — Cloudflare идёт к origin по HTTPS;
  • Full (strict) — Cloudflare идёт по HTTPS и проверяет сертификат origin.

Если на origin установлен нормальный SSL-сертификат, обычно правильный выбор — Full или Full (strict). Режим Flexible — самая частая причина redirect loop, если сервер уже настроен на принудительный HTTPS.

2. Если у вас Flexible, проверьте редирект HTTP → HTTPS на origin

По официальной схеме Cloudflare, при режиме Flexible цикл возникает именно тогда, когда origin автоматически перекидывает HTTP на HTTPS. В этом случае есть два решения:

  • убрать HTTPS-редирект на origin;
  • или перевести Cloudflare в Full / Full (strict), если на origin уже есть SSL.

3. Если у вас Full или Full (strict), проверьте редирект HTTPS → HTTP

Cloudflare также указывает обратный сценарий: если домен работает в Full или Full (strict), а origin зачем-то перенаправляет HTTPS-запросы обратно на HTTP, посетитель снова застревает в бесконечном цикле.

В этом случае нужно удалить редирект HTTPS → HTTP на origin и оставить сервер в нормальной HTTPS-конфигурации.

4. Проверьте Always Use HTTPS

Cloudflare отдельно называет Always Use HTTPS среди типичных причин ошибки. Эта функция полезна, но если похожий редирект уже задан на сервере, в WordPress или в правилах Cloudflare, может появиться конфликт.

Для диагностики временно отключите Always Use HTTPS, проверьте сайт, а потом включите только одну рабочую схему редиректа.

5. Проверьте HSTS

Cloudflare относит HSTS к настройкам, которые тоже могут участвовать в цикле редиректов. Это особенно заметно, если сайт недавно менял схему HTTPS, поддомены, сертификаты или режим SSL.

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

6. Проверьте Redirect Rules в Cloudflare

Официальная документация Cloudflare прямо указывает, что неправильно настроенное redirect rule — одна из базовых причин ERR_TOO_MANY_REDIRECTS. Особенно часто это происходит, когда одновременно сделаны правила:

  • HTTP → HTTPS;
  • www → non-www или наоборот;
  • редирект одного поддомена на другой;
  • условные редиректы по URI, которые зацикливают сами себя.

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

7. Проверьте редиректы на origin-сервере

После Cloudflare переходите на сам сервер. Ошибка часто сидит в:

  • .htaccess;
  • конфиге Nginx;
  • настройках Apache;
  • reverse proxy;
  • правилах панели хостинга.

Ищите принудительные редиректы на HTTPS, HTTP, www, non-www, другой домен или поддомен.

8. Проверьте WordPress и плагины

На WordPress цикл часто создают:

  • неправильные адреса WordPress Address и Site Address;
  • плагины SSL;
  • плагины кэша;
  • security-плагины;
  • плагины редиректов;
  • жёстко прописанные редиректы в functions.php.

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

9. Очистите cookies и кэш после исправлений

После исправления конфигурации очистите:

  • кэш Cloudflare;
  • кэш сайта;
  • cookies и кэш браузера для проблемного домена.

Без этого браузер может продолжать показывать старый redirect loop, даже если проблема уже убрана.

10. Протестируйте сайт напрямую

Если неясно, где именно цикл, временно переведите DNS-запись в режим DNS only и проверьте сайт без проксирования Cloudflare. Это помогает быстро понять, возникает ли loop на стороне origin или только при сочетании origin + Cloudflare.

Advanced troubleshooting

  1. Проверьте цепочку редиректов через браузерные DevTools.
  2. Сравните поведение URL с www и без www.
  3. Проверьте отдельно HTTP и HTTPS версии сайта.
  4. Убедитесь, что WordPress Home URL и Site URL совпадают с каноническим доменом.
  5. Проверьте, не задан ли редирект одновременно в Cloudflare и на origin.
  6. Если используете load balancer или reverse proxy, проверьте заголовки X-Forwarded-Proto.
  7. Проверьте, не зацикливаются ли правила для поддоменов, API или админки.

Как избежать redirect loop в будущем

  • используйте только одну основную схему HTTPS-редиректа;
  • не смешивайте Flexible с принудительным HTTPS на origin;
  • не дублируйте редиректы одновременно в Cloudflare, WordPress и сервере;
  • тестируйте HSTS только после полной стабилизации HTTPS;
  • после миграции сайта проверяйте www/non-www и HTTP/HTTPS отдельно;
  • держите SSL-настройки origin и Cloudflare согласованными.

Когда обращаться в поддержку

  • если вы убрали очевидные редиректы, а цикл остался;
  • если неясно, кто именно отдаёт редирект — origin или Cloudflare;
  • если используется нестандартный reverse proxy, балансировщик или CDN-цепочка;
  • если проблема появилась после миграции и у вас нет доступа к серверным логам.

FAQ

Что чаще всего вызывает Cloudflare Redirect Loop?

Чаще всего причина — неправильный SSL/TLS Encryption mode, особенно режим Flexible в сочетании с принудительным HTTPS на origin.

Помогает ли переход с Flexible на Full?

Да, если на origin уже есть рабочий SSL-сертификат. Cloudflare сам рекомендует в таком случае использовать Full или выше, чтобы избежать цикла.

Может ли Always Use HTTPS вызывать ERR_TOO_MANY_REDIRECTS?

Да. Cloudflare относит эту настройку к возможным причинам, если она конфликтует с редиректами на origin или с другими правилами.

Может ли HSTS вызывать redirect loop?

Да. Неправильно включённый HSTS может закрепить нежелательную схему HTTPS-поведения в браузере и усилить проблему.

Как быстро понять, виноват Cloudflare или сервер?

Самый простой способ — временно перевести DNS-запись в DNS only и проверить сайт напрямую. Если цикл исчез, конфликт был в сочетании Cloudflare и origin-настроек.

Вывод

Cloudflare Redirect Loop почти всегда вызывается конфликтом между SSL-режимом Cloudflare, редиректами на origin, настройками Always Use HTTPS, HSTS или Redirect Rules. Ошибка неприятная, но решается быстро, если проверять конфигурацию по порядку.

Самая частая практическая развязка — убрать дублирующие редиректы и согласовать HTTPS-схему между Cloudflare и origin. Обычно после этого ERR_TOO_MANY_REDIRECTS исчезает сразу.

 

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *