Это не ваш сайт? Если чужой сайт не открывается только у вас — попробуйте другой браузер, мобильный интернет и отключите VPN. Дальше на странице — разбор для владельца сайта.
Петля редиректов — ошибка настройки: сайт не открывается ни у кого. Если же сайт открывается, но уводит посетителей на чужой сайт, это вредоносный код: сайт перенаправляет на чужой сайт.
Шаг 1. Выясните, у кого ошибка
Откройте адрес в режиме инкогнито и с телефона через мобильный интернет.
- В инкогнито или на телефоне открывается. Причина в данных браузера. Удалите cookie для этого сайта или откройте его в другом браузере. Если не помогло, переходите к шагу 2.
- Не открывается нигде. Петля на стороне сайта. Если это не ваш сайт, подождите или напишите владельцу. Если ваш, переходите к шагу 2.
Шаг 2. Посмотрите цепочку редиректов
Команда покажет каждый переход, не открывая страницу:
curl -sIL --max-redirs 8 https://example.ruВ выводе смотрите строки HTTP/ с кодом 301 или 302 и строки location:. Если два адреса повторяются по кругу, вы нашли петлю. Эта пара подсказывает причину:
| Что в цепочке | Вероятная причина | Что делать |
|---|---|---|
http:// → https:// → http:// | Одна настройка требует HTTPS, другая возвращает HTTP | Шаги 3 и 4 |
example.ru → www.example.ru → example.ru | Сервер и CMS по-разному решают, нужен ли www | Оставьте один вариант адреса в обоих местах |
| Адрес перенаправляет сам на себя | Правило в .htaccess, плагин редиректов или location в nginx | Шаг 3 или 4 |
| Петля только при входе в админку | Адрес сайта в настройках CMS не совпадает с тем, что открыт в браузере | Шаг 3 |
Если curl не установлен, вкладка «Сеть» в инструментах разработчика браузера (F12) с включённым сохранением журнала показывает те же переходы.
Не хотите разбираться сами? Пришлём оценку в часах до начала работы, первая задача до 2 часов бесплатно.
Отправить задачуШаг 3. WordPress
- Адрес сайта. В «Настройки → Общие» поля «Адрес WordPress (URL)» и «Адрес сайта (URL)» должны начинаться с
https://, если сайт работает по HTTPS, и не заканчиваться слешем (документация WordPress). Если в админку войти нельзя, задайте адреса вwp-config.php:
define( 'WP_HOME', 'https://example.ru' );
define( 'WP_SITEURL', 'https://example.ru' );Пока эти строки есть, поля в настройках недоступны для правки. Это нормально, так задумано.
- Плагины. Плагины редиректов, кеша и безопасности умеют перенаправлять запросы. Переименуйте папку
wp-content/pluginsвplugins-off: WordPress отключит все плагины. Если петля исчезла, верните имя и включайте плагины по одному.
- Файл
.htaccess. Переименуйте его в.htaccess-oldи откройте сайт. Если петля исчезла, правила в файле противоречат настройкам. Блок# BEGIN WordPressсоздаётся заново, когда вы сохраняете «Настройки → Постоянные ссылки» (если файл доступен для записи); свои правила редиректа возвращайте по одному.
- Сайт за прокси или балансировщиком. Если шифрование завершается на прокси, а до WordPress трафик идёт по HTTP, WordPress считает каждый запрос небезопасным и отправляет его на HTTPS снова. Документация WordPress называет это бесконечной петлёй и предлагает распознавать заголовок
X-Forwarded-Protoвwp-config.php:
if ( strpos( $_SERVER['HTTP_X_FORWARDED_PROTO'], 'https' ) !== false ) {
$_SERVER['HTTPS'] = 'on';
}Прокси должен передавать заголовок. В nginx для этого есть строка proxy_set_header X-Forwarded-Proto $scheme;. Заголовок может прислать и посетитель, поэтому доверять ему можно, только если прокси его перезаписывает.
Шаг 4. Сервер: Apache и nginx
Apache, .htaccess. Редирект на HTTPS с условием, которое перестаёт срабатывать после перехода (документация Apache):
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]Если шифрование завершает прокси, %{HTTPS} на сервере остаётся off, и редирект срабатывает на каждый запрос. Тогда проверяйте заголовок:
RewriteCond %{HTTP:X-Forwarded-Proto} !=httpsnginx. Редирект на HTTPS должен стоять в блоке, который слушает порт 80:
server {
listen 80;
server_name example.ru www.example.ru;
return 301 https://example.ru$request_uri;
}Если такая строка попала в блок с listen 443 ssl, каждый запрос на HTTPS получает редирект на HTTPS, и петля готова. После правок: nginx -t, затем systemctl reload nginx.
Шаг 5. Cloudflare и другие CDN
Если домен стоит за Cloudflare, петля часто возникает от сочетания режима шифрования и редиректов на вашем сервере (документация Cloudflare):
| Режим SSL/TLS в Cloudflare | Что ломает |
|---|---|
| Flexible | Cloudflare ходит на сервер по HTTP. Если сервер перенаправляет HTTP на HTTPS, получается петля |
| Full и Full (strict) | Cloudflare ходит на сервер по HTTPS. Если сервер перенаправляет HTTPS на HTTP, получается петля |
Для Flexible документация предлагает убрать редирект на HTTPS с сервера или перейти на Full либо Full (strict). Эти режимы требуют сертификата на самом сервере. Проверьте и правила редиректов в панели Cloudflare: два противоречащих правила дают ту же картину.
Шаг 6. Проверьте результат
curl -sIL https://example.ruпоказывает один переход (или ни одного) и ответ200.- Адреса с
http://, сwwwи безwwwведут на один основной адрес за один переход. - Вход в админку работает в инкогнито.
- Сайт открывается с телефона через мобильную сеть.
Когда нужен специалист
- Нет доступа к серверу или файлам: сайт на виртуальном хостинге без панели с файлами.
- Петля осталась после отключения плагинов и переименования
.htaccess. - Сайт работает через несколько слоёв: CDN, балансировщик, nginx и Apache, и непонятно, какой из них отвечает редиректом.
- Админка недоступна, а правка
wp-config.phpне помогла. - Редиректы нужны и по SEO (смена адресов, переезд с
http, с домена на домен), и вы не хотите потерять позиции.
Сколько стоит решение у нас
| Задача | Время | Стоимость |
|---|---|---|
| Исправление ошибки | 1–2 ч | 3 800–7 600 ₽ |
| Диагностика и восстановление | около 2 ч | 7 600 ₽ |
Диапазоны ориентировочные, ставка 3 800 ₽ в час. Точную оценку присылаем до начала работ. Все цены.
Опишите проблему в форме. Пришлём оценку в часах до начала работы, первая задача до 2 часов бесплатно для новых клиентов.
Отправить задачуЧастые вопросы
Сколько редиректов допускает браузер?
Спецификация HTTP требует, чтобы клиент обнаруживал циклические редиректы и вмешивался (RFC 9110, раздел 15.4). Точный лимит зависит от браузера. Для владельца сайта число не важно: правильная настройка даёт один переход.
Почему на сервере 500, а не ERR_TOO_MANY_REDIRECTS?
Это другая петля, внутренняя. В nginx цикл перезаписи адреса прерывается после десяти повторов с ответом 500 (документация nginx). Читайте про ошибку 500.
Влияет ли петля на поисковую выдачу?
Робот не получает страницу, пока цикл не исправлен, и такие адреса не попадут в индекс. Проверьте в Яндекс Вебмастере и Search Console, что после исправления страницы снова отвечают кодом 200.
Можно ли решить очисткой кеша браузера?
Только если проблема в cookie и сохранённых данных на вашем устройстве (шаг 1). Если петля у всех посетителей, очистка на вашем устройстве ничего не изменит.