ERR_TOO_MANY_REDIRECTS - jak naprawić pętlę przekierowań

ERR_TOO_MANY_REDIRECTS to pętla przekierowań. Zobacz, jak znaleźć jej źródło curlem i naprawić HTTPS, www, Cloudflare Flexible oraz adresy WordPressa.

Autor: McProdukt · Opublikowano:

ERR_TOO_MANY_REDIRECTS oznacza pętlę przekierowań: adres A odsyła do B, a B z powrotem do A, więc przeglądarka przerywa wczytywanie strony. Najczęściej winne jest wymuszanie HTTPS lub wersji z www w dwóch miejscach naraz, a gdy błąd widzi tylko jedna osoba - jej ciasteczka lub pamięć przeglądarki. Niżej diagnoza poleceniem curl, tabela przyczyn i kroki naprawy.

W skrócie:

  • Pętla przekierowań powstaje, gdy dwie reguły odsyłają ruch do siebie nawzajem, np. panel kieruje na adres bez www, a WordPress na adres z www.
  • HTTPS i wersję adresu (z www albo bez) wymuszaj w jednym miejscu - w panelu, w .htaccess albo we wtyczce - nigdy w kilku naraz.
  • Polecenie curl -sSIL wypisuje każdy krok łańcucha z nagłówkiem Location, więc widać, która reguła zawraca ruch.
  • Przy Cloudflare typową przyczyną jest tryb SSL/TLS Flexible przy serwerze, który sam wymusza HTTPS; rozwiązaniem jest tryb Full lub Full (strict).
  • Odwiedzający pomoże sobie tylko wtedy, gdy winne są ciasteczka lub pamięć jego przeglądarki: strona działa wtedy w oknie prywatnym, a pomaga usunięcie danych witryny.

Co oznacza błąd ERR_TOO_MANY_REDIRECTS?

ERR_TOO_MANY_REDIRECTS (dosłownie „zbyt wiele przekierowań”) oznacza, że przeglądarka dostała z rzędu tyle przekierowań, że przerwała wczytywanie, nie docierając do treści. Przekierowanie to odpowiedź serwera z kodem z grupy 3xx (np. 301 lub 302) i nagłówkiem Location, który wskazuje nowy adres.

Pętla przekierowań to łańcuch, który nigdy nie kończy się stroną z treścią: A odsyła do B, B do A i tak w kółko. Specyfikacja HTTP (RFC 9110) mówi, że klient powinien wykrywać takie cykle i je przerywać; jej wcześniejsza wersja zalecała limit pięciu przekierowań. Przeglądarki mają własne progi i pokazują błąd zwykle po kilkunastu-kilkudziesięciu skokach, curl domyślnie wykonuje najwyżej 50 przekierowań, a roboty Google - do 10.

Chrome pokazuje kod ERR_TOO_MANY_REDIRECTS i informację, że strona przekierowała Cię zbyt wiele razy. Firefox pisze, że serwer przekierowuje żądanie w sposób, który nigdy się nie zakończy. Gdy pętlę wykryje sam serwer, zobaczysz raczej błąd 500.

Co zrobić, gdy widzisz ten błąd na cudzej stronie?

Na cudzej stronie sprawdzisz tylko, czy pętli nie podtrzymują ciasteczka albo pamięć Twojej przeglądarki. Według dokumentacji MDN odwiedzający niewiele tu zrobi, chyba że problem leży po jego stronie - w pamięci podręcznej lub ciasteczkach.

  1. Otwórz adres w oknie prywatnym (incognito) - jeśli działa, winne są dane zapisane w zwykłym oknie.
  2. Usuń ciasteczka i dane tej jednej witryny w ustawieniach prywatności przeglądarki.
  3. Sprawdź stronę w innej przeglądarce albo na telefonie.
  4. Jeśli błąd jest wszędzie, problem leży po stronie witryny - daj znać właścicielowi. Jak to ustalić, pokazuje poradnik strona nie działa - u mnie czy u wszystkich.

Jak znaleźć źródło pętli przekierowań?

Źródło pętli znajdziesz, wypisując cały łańcuch przekierowań poleceniem curl i czytając nagłówek Location w każdej odpowiedzi. curl to narzędzie wiersza poleceń do wysyłania żądań HTTP: -I pobiera same nagłówki, -L podąża za przekierowaniami, --max-redirs ogranicza liczbę skoków, a -sS ukrywa pasek postępu, zostawiając komunikaty o błędach. W Windows PowerShell wpisz curl.exe - samo curl bywa tam aliasem innego polecenia.

Przykład dla konfliktu www (adresy i odpowiedzi przykładowe, wynik skrócony):

curl -sSIL --max-redirs 10 http://twojadomena.pl

HTTP/1.1 301 Moved Permanently
Location: https://twojadomena.pl/
HTTP/2 301
location: https://www.twojadomena.pl/
x-redirect-by: WordPress
HTTP/2 301
location: https://twojadomena.pl/
(...)
curl: (47) Maximum (10) redirects followed

Pierwszy skok (http na https) jest prawidłowy. Dalej WordPress - co zdradza nagłówek x-redirect-by: WordPress - kieruje na wersję z www, a serwer odsyła z powrotem na adres bez www, aż curl zgłosi przekroczenie limitu. Wtyczki mogą wpisywać w tym nagłówku własną nazwę. Gdy go brak, sprawdź najpierw ustawienia panelu i plik .htaccess.

To samo zobaczysz w przeglądarce: narzędzia deweloperskie (F12), zakładka Network, opcja Preserve log - każde przekierowanie to osobny wiersz z kodem 301 lub 302 i nagłówkiem Location. Sprawdź cztery warianty adresu: http i https, z www i bez.

Co widać w łańcuchuCo to zwykle oznaczaGdzie szukać
bez www → www → bez wwwdwie reguły chcą innej wersji adresuustawienie domeny w panelu i Adres witryny w WordPressie
https → http → httpscoś cofa ruch na httpadresy w WordPressie zapisane z http, wtyczki, przy Cloudflare - Always Use HTTPS
ten sam adres w kółkoserwer nie widzi, że połączenie jest szyfrowaneproxy lub CDN w trybie Flexible
pętla tylko na /wp-admin/ lub /wp-login.phpWordPress nie rozpoznaje szyfrowanego połączeniastała FORCE_SSL_ADMIN za proxy lub CDN
nagłówek x-redirect-byprzekierowuje WordPress lub wtyczkaadresy w WordPressie, wtyczki przekierowań, SEO i językowe
curl: jeden skok i kod 200, przeglądarka: błądprzeglądarka trzyma stare przekierowanie lub ciasteczkadane witryny i pamięć podręczna przeglądarki

Jakie są najczęstsze przyczyny pętli przekierowań?

Najczęstsze przyczyny to wymuszanie HTTPS lub www w kilku miejscach naraz, Cloudflare w trybie Flexible, błędne adresy w WordPressie, kolidujące wtyczki i zapamiętane przekierowania. Tabela zbiera objawy i naprawę, niżej szczegóły.

ObjawNajczęstsza przyczynaJak naprawić
Błąd zaraz po włączeniu HTTPSHTTPS wymuszone w panelu i dodatkowo we wtyczce lub w .htaccesszostaw jedno przekierowanie, resztę usuń
Pętla między adresem z www i bez wwwpanel kieruje na jedną wersję, WordPress na drugąwpisz w WordPressie wersję ustawioną w panelu
Błąd po włączeniu Cloudflaretryb SSL/TLS Flexible i przekierowanie na HTTPS na serwerzeprzełącz tryb na Full lub Full (strict) albo usuń przekierowanie z serwera
Błąd po przeprowadzce lub zmianie domenystare adresy w opcjach siteurl i home albo w stałych WP_HOME i WP_SITEURLpopraw adresy w wp-config.php lub w bazie
Błąd po instalacji lub aktualizacji wtyczkireguła wtyczki (przekierowania, SEO, wersje językowe, SSL) koliduje z serweremwyłącz wtyczkę zmianą nazwy jej katalogu
Pętla zostaje mimo poprawekstara odpowiedź w LSCache (pamięci podręcznej LiteSpeed), CDN lub przeglądarcewyczyść pamięć podręczną i dane witryny
Po zalogowaniu wracasz na ekran logowaniaciasteczko logowania zapisane dla innej wersji adresuustaw wszędzie ten sam adres i usuń ciasteczka witryny

HTTPS wymuszone w dwóch miejscach naraz

Dwa mechanizmy wymuszające HTTPS to częste źródło pętli tuż po włączeniu certyfikatu SSL. Jeśli obie reguły prowadzą pod ten sam adres, kończy się co najwyżej na zbędnym skoku. Pętla powstaje, gdy różnią się szczegółem: jedna kieruje na www, druga bez, albo jedna nie rozpoznaje, że połączenie jest już szyfrowane.

Na hostingu McProdukt HTTPS włączysz w DirectAdmin: „SSL Certificates” → „Force SSL with https redirect”, a przekierowanie www lub bez www - w ustawieniach domeny w DirectAdmin. Serwer OpenLiteSpeed wykonuje też reguły RewriteRule i Redirect z .htaccess, więc reguła w pliku działa obok ustawienia panelu i może je dublować. Jeśli wolisz .htaccess, wystarczy ta reguła na początku pliku (jak w poradniku wymuszenie HTTPS na stronie):

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Wybierz jedno: panel albo tę regułę, a wymuszanie SSL we wtyczce wyłącz. Kolejność reguł i pułapki tego pliku opisuje przewodnik .htaccess w praktyce.

Konflikt adresu z www i bez www

Pętla między www a wersją bez www powstaje, gdy serwer kieruje na jedną wersję adresu, a WordPress na drugą. WordPress sam przekierowuje odwiedzających na wersję z www albo bez www, zgodnie z polem Adres witryny (URL), więc ustawienie domeny w panelu i adres w WordPressie muszą się zgadzać. Wybierz wersję główną, ustaw ją w panelu i wpisz identyczną w Ustawienia → Ogólne.

Too many redirects w Cloudflare - tryb Flexible

Pętla tuż po włączeniu Cloudflare to zwykle tryb szyfrowania SSL/TLS Flexible przy serwerze, który sam przekierowuje HTTP na HTTPS. Cloudflare to usługa CDN (Content Delivery Network) i serwer pośredniczący (proxy) między odwiedzającym a hostingiem. W trybie Flexible łączy się z serwerem przez HTTP, serwer odsyła na HTTPS, przeglądarka znowu trafia do Cloudflare - i koło się zamyka.

Dokumentacja Cloudflare podaje dwa wyjścia: usunąć przekierowanie z serwera albo przełączyć tryb na Full lub wyższy, co wymaga certyfikatu SSL na serwerze (stan na październik 2026). Pierwsze wyjście zostawia nieszyfrowany odcinek między Cloudflare a serwerem, dlatego lepszy jest Full (strict), który dodatkowo sprawdza ważność certyfikatu serwera. Pętle tworzą też sprzeczne reguły przekierowań i opcja Always Use HTTPS, gdy serwer kieruje z HTTPS na HTTP. Więcej o takich usługach we wpisie CDN - co to jest i kiedy się opłaca.

Błędne adresy w ustawieniach WordPressa

WordPress trzyma dwa adresy - Adres WordPressa (URL) i Adres witryny (URL) - i według nich buduje linki oraz przekierowania. W bazie to opcje siteurl i home w tabeli wp_options; w wp-config.php mogą je nadpisać stałe WP_SITEURL i WP_HOME. Gdy po przeprowadzce lub włączeniu HTTPS został tam stary adres, http albo inna wersja www, WordPress i serwer mogą odsyłać ruch w przeciwne strony.

Według dokumentacji WordPressa oba adresy podajesz z https:// i bez ukośnika na końcu. Wpisane w wp-config.php blokują edycję pól w Ustawienia → Ogólne:

define( 'WP_HOME', 'https://twojadomena.pl' );
define( 'WP_SITEURL', 'https://twojadomena.pl' );

Dopisz je nad komentarzem kończącym edycję (po angielsku That's all, stop editing!). Gdy WordPress leży w podkatalogu, WP_SITEURL musi go zawierać. Pełną procedurę opisuje wpis przeniesienie WordPressa na nową domenę.

Wtyczki, pamięć podręczna i zapamiętane przekierowania

Pętlę tworzą też wtyczki, które same przekierowują: menedżery przekierowań, wtyczki SEO, wersji językowych i wymuszania SSL. Jeśli błąd pojawił się po instalacji lub aktualizacji jednej z nich, wyłącz ją jako pierwszą.

Druga pułapka to pamięć. Specyfikacja HTTP pozwala zapisać odpowiedź 301 w pamięci podręcznej nawet bez podanego czasu ważności, więc przeglądarka może powtarzać błędne przekierowanie po poprawce. Po każdej zmianie wyczyść LSCache (we wtyczce LiteSpeed Cache opcja Purge All, zob. LiteSpeed Cache krok po kroku), CDN i dane witryny w przeglądarce.

Logowanie do wp-admin kręci się w kółko

Gdy po zalogowaniu wracasz na ekran logowania, ciasteczko logowania zwykle zapisało się dla innej wersji adresu (http lub https, z www lub bez) niż ta, pod którą otwiera się kokpit. Ustaw ten sam adres w WordPressie i w panelu hostingu, usuń ciasteczka witryny i zaloguj się ponownie. Za proxy lub CDN, które łączy się z serwerem przez HTTP, kokpit potrafi zapętlić stała FORCE_SSL_ADMIN - dokumentacja WordPressa ostrzega przed tym wprost.

Jak naprawić pętlę przekierowań w WordPressie bez dostępu do wp-admin?

Bez dostępu do kokpitu WordPressa naprawisz pętlę, edytując pliki przez FTP lub menedżer plików w panelu hostingu i poprawiając adresy w bazie przez phpMyAdmin. Po każdym kroku sprawdzaj wynik curlem albo w oknie prywatnym:

  1. Zrób kopię - pobierz wp-config.php i .htaccess, wyeksportuj bazę.
  2. Usuń zdublowane reguły - w .htaccess zostaw jedną regułę HTTPS albo żadną, jeśli HTTPS wymusza panel; blok od # BEGIN WordPress do # END WordPress zostaw bez zmian.
  3. Wyłącz podejrzaną wtyczkę - zmień nazwę jej katalogu w wp-content/plugins (np. dopisz -off), a WordPress ją dezaktywuje. Gdy nie wiesz, która to, zmień nazwę całego katalogu plugins.
  4. Ustaw adresy - dopisz stałe WP_HOME i WP_SITEURL z przykładu wyżej (mają pierwszeństwo przed bazą) albo popraw siteurl i home w tabeli wp_options w phpMyAdmin.
  5. Wyczyść pamięć podręczną - LSCache, CDN i dane witryny w przeglądarce.
  6. Sprawdź cztery warianty adresu - każdy powinien dojść do kodu 200 po jednym, najwyżej dwóch skokach.

Zapytania dla zakładki SQL w phpMyAdmin - pierwsze pokazuje obecne adresy, drugie je zmienia (inny prefiks tabel niż wp_ sprawdzisz w zmiennej $table_prefix w wp-config.php):

SELECT option_name, option_value FROM wp_options
WHERE option_name IN ('siteurl', 'home');

UPDATE wp_options SET option_value = 'https://twojadomena.pl'
WHERE option_name IN ('siteurl', 'home');

Połączenie przez FTP pokazuje poradnik FTP i FileZilla krok po kroku, a eksport i import bazy - wpis baza danych MySQL - phpMyAdmin, import i eksport.

Jak uniknąć pętli przekierowań po włączeniu HTTPS?

Pętli unikniesz, gdy HTTPS i wersję adresu wymuszasz w jednym miejscu, a każdą zmianę przekierowań od razu testujesz.

  • Najpierw certyfikat, potem przekierowanie - wymuszanie HTTPS włącz, gdy certyfikat już działa. Na naszym hostingu każda domena dostaje darmowy certyfikat Let's Encrypt, wystawiany i odnawiany automatycznie; datę ważności, wystawcę i nazwy w certyfikacie sprawdzisz w teście SSL.
  • Jedno miejsce na HTTPS i www - oba przekierowania ustaw w DirectAdmin (HTTPS w „SSL Certificates”, www w ustawieniach domeny), w WordPressie wpisz ten sam adres, a wtyczkę (np. Redirection) zostaw do przekierowań starych podstron.
  • Najpierw 302, potem 301 - nowe reguły testuj przekierowaniem tymczasowym, bo 301 przeglądarka może zapamiętać; różnicę wyjaśnia przewodnik przekierowania 301 i 302.
  • Test po każdej zmianie - cztery warianty adresu, kilka podstron i logowanie do kokpitu WordPressa.
  • Aktualne linki wewnętrzne - linki w treści i menu prowadź od razu na adres docelowy.

Jeśli porządkujesz przekierowania przy przeprowadzce, możesz ją zlecić nam: na hostingu McProdukt bezpłatną migrację strony, sklepu i poczty robimy za Ciebie, a każdy pakiet przetestujesz przez 14 dni bez płatności (raz na konto). Automatyczne kopie plików i baz danych przywrócisz z panelu, gdyby zmiana konfiguracji poszła nie tak.

Najczęściej zadawane pytania

Czy ERR_TOO_MANY_REDIRECTS to wina mojego komputera, czy strony?

Zwykle strony - według dokumentacji MDN pętla to najczęściej problem serwera. Po Twojej stronie winne mogą być tylko ciasteczka lub pamięć przeglądarki; jeśli strona działa w oknie prywatnym, usuń dane tej witryny.

Jak naprawić ERR_TOO_MANY_REDIRECTS w Cloudflare?

Jeśli serwer sam przekierowuje na HTTPS, zmień w ustawieniach SSL/TLS tryb Flexible na Full lub Full (strict) - wymaga to certyfikatu na serwerze. Potem sprawdź, czy reguły przekierowań i opcja Always Use HTTPS nie kolidują z regułami serwera.

Czy pętla przekierowań szkodzi pozycjom w Google?

Może zaszkodzić, bo strona w pętli jest dla robotów niedostępna. Roboty Google domyślnie podążają za najwyżej 10 przekierowaniami, a z pętli nie dochodzą do treści; Search Console zgłasza nieudane przekierowania jako błędy.

Dlaczego po naprawie nadal widzę ERR_TOO_MANY_REDIRECTS?

Przeglądarka może pamiętać stare przekierowanie 301 lub ciasteczka, a pamięć podręczna serwera albo CDN - starą odpowiedź. Sprawdź adres curlem lub w oknie prywatnym; jeśli tam działa, usuń dane witryny i wyczyść cache.

Ile przekierowań to za dużo?

Każdy wariant adresu powinien dochodzić do strony po jednym, najwyżej dwóch skokach. Przeglądarki przerywają łańcuch po kilkunastu-kilkudziesięciu skokach, roboty Google po 10, ale każdy dodatkowy skok to osobne żądanie i wolniejsze wczytywanie.

Gdzie w DirectAdmin wyłączyć wymuszanie HTTPS?

W sekcji „SSL Certificates” - opcja nazywa się „Force SSL with https redirect”. Wyłącz ją, jeśli HTTPS wymuszasz w .htaccess, albo usuń regułę z pliku i zostaw panel - przekierowanie ma działać w jednym miejscu.

Powiązane poradniki

Wszystkie poradniki z kategorii: Szybkość i wydajność

Powiązane usługi McProdukt

Zobacz również