ERR_TOO_MANY_REDIRECTS: jak to naprawić (wszystkie przeglądarki)

Advertisement
Czym jest ERR_TOO_MANY_REDIRECTS?
ERR_TOO_MANY_REDIRECTS to błąd przeglądarki, który występuje, gdy witryna wpada w nieskończoną pętlę przekierowań. Zamiast załadować stronę, przeglądarka ciągle przeskakuje między adresami URL, a po osiągnięciu limitu przekierowań poddaje się i wyświetla ten błąd.
Każda przeglądarka ma wbudowany limit przekierowań, który zapobiega nieskończonej pętli pochłaniającej zasoby. Gdy strona przekroczy ten limit, połączenie zostaje przerwane z komunikatem o błędzie.
| Przeglądarka | Komunikat błędu | Limit przekierowań |
|---|---|---|
| Chrome | This page isn't working — ERR_TOO_MANY_REDIRECTS | 20 przekierowań |
| Firefox | The page isn't redirecting properly | 20 przekierowań |
| Safari | Safari Can't Open the Page — too many redirects occurred | 16 przekierowań |
| Edge | This page isn't working — ERR_TOO_MANY_REDIRECTS | 20 przekierowań |
Kody statusu HTTP w pętli przekierowań to zazwyczaj 301 (przekierowanie stałe) lub 302 (przekierowanie tymczasowe). Typowa pętla wygląda następująco: przeglądarka wysyła żądanie do URL A, serwer odpowiada kodem 301 na URL B, URL B odpowiada kodem 301 z powrotem na URL A, a cykl powtarza się, aż przeglądarka osiągnie limit.
Co powoduje pętle przekierowań?
Pętle przekierowań występują, gdy dwie lub więcej reguł przekierowań wchodzi ze sobą w konflikt. Serwer wysyła przeglądarkę na dany URL, a ten URL wysyła przeglądarkę z powrotem. Oto najczęstsze przyczyny:
Błędna konfiguracja SSL/HTTPS — Najczęstsza przyczyna. Twój serwer wymusza HTTP na HTTPS, ale CDN lub load balancer łączy się z serwerem po HTTP, tworząc pętlę: CDN -> HTTP -> serwer przekierowuje na HTTPS -> CDN usuwa HTTPS -> HTTP -> pętla
Cloudflare Flexible SSL — Tryb Flexible SSL w Cloudflare wysyła żądania do serwera po HTTP. Jeśli serwer również wymusza przekierowanie HTTP na HTTPS, powstaje nieskończona pętla między Cloudflare a serwerem
Kolidujące reguły w .htaccess — Wiele reguł przekierowań w
.htaccess, które sobie przeczą, np. jedna reguła wymuszająca www, a druga wymuszająca bez www jednocześnieNiezgodność URL w WordPress — Adres WordPress (URL) i Adres witryny (URL) w Ustawienia > Ogólne nie są zgodne, lub jeden używa HTTP, a drugi HTTPS
Przestarzałe pliki cookie przeglądarki — Stare pliki cookie zawierające nieaktualne instrukcje przekierowań lub dane sesji, które kierują przeglądarkę na URL, który już nie istnieje lub został przeniesiony
Przekierowania w cache CDN lub proxy — CDN zapamiętał stare przekierowanie 301, które teraz koliduje z aktualną konfiguracją serwera
Konflikty konfiguracji serwera — Pliki konfiguracyjne Nginx lub Apache z konkurującymi blokami przekierowań, np. przekierowanie zarówno w bloku serwera, jak i w .htaccess jednocześnie
Jak zdiagnozować pętlę przekierowań
Zanim zaczniesz próbować poprawek, zidentyfikuj dokładny łańcuch przekierowań. To pokaże Ci, które adresy URL są zaangażowane i które reguły przekierowań powodują pętlę.
Metoda 1: Użyj curl do śledzenia przekierowań
Najszybszym sposobem na zobaczenie łańcucha przekierowań jest użycie curl w terminalu. Flaga -I pobiera tylko nagłówki, -L podąża za przekierowaniami, a --max-redirs ogranicza ich liczbę:
# Trace redirect chain (limit to 10 hops)
curl -ILs --max-redirs 10 https://example.com 2>&1 | grep -i 'HTTP/\|location:'
# Example output showing a redirect loop:
# HTTP/2 301
# location: http://example.com/
# HTTP/1.1 301 Moved Permanently
# Location: https://example.com/
# HTTP/2 301
# location: http://example.com/
# (repeats...)Jeśli widzisz te same dwa adresy URL naprzemiennie w nagłówkach Location, potwierdziłeś pętlę przekierowań. Zwróć uwagę na kody statusu HTTP: 301 oznacza przekierowanie stałe (buforowane przez przeglądarki), 302 oznacza tymczasowe (niebuforowane).
Metoda 2: Karta Network w DevTools przeglądarki
Możesz również śledzić przekierowania wizualnie w Chrome DevTools:
Krok 1 — Otwórz Chrome DevTools za pomocą
F12lubCtrl+Shift+I(Mac:Cmd+Option+I)Krok 2 — Przejdź do karty Network i zaznacz Preserve log (zachowuje wpisy między przekierowaniami)
Krok 3 — Załaduj stronę, która wywołuje błąd
Krok 4 — Sprawdź sekwencję żądań. Każde przekierowanie pojawia się jako osobny wpis ze statusem 301 lub 302. Kolumna Location pokazuje, dokąd wskazuje każde przekierowanie
Karta Network pokazuje pełny łańcuch przekierowań w kolejności chronologicznej. Zobaczysz wzorzec — zazwyczaj dwa lub trzy adresy URL powtarzające się cyklicznie. Użyj HTTP Headers Checker od DNS Robot, aby sprawdzić nagłówki odpowiedzi poza pamięcią podręczną przeglądarki.
Metoda 3: Sprawdzanie przekierowań online
Jeśli nie masz dostępu do terminala, użyj Redirect Checker od DNS Robot, aby prześledzić pełny łańcuch przekierowań. Wpisz URL, a narzędzie pokaże każdy skok, kod statusu i ostateczny cel — lub potwierdzi istnienie pętli. Jest to przydatne, ponieważ sprawdza z neutralnej lokalizacji bez wpływu plików cookie przeglądarki na wynik.
Poprawka 1: Wyczyść pliki cookie i pamięć podręczną przeglądarki
Zacznij od najprostszej poprawki. Przestarzałe pliki cookie lub buforowane przekierowania w przeglądarce mogą powodować pętle nawet przy prawidłowej konfiguracji serwera. Jest to szczególnie częste po migracji witryny z HTTP na HTTPS — stare pliki cookie mogą nadal odwoływać się do adresów HTTP.
Advertisement
Czyszczenie plików cookie w Chrome
Wyczyść pliki cookie dla konkretnej witryny, a nie wszystkie — to zachowa Twoje logowania na innych stronach:
Krok 1 — Kliknij ikonę kłódki (lub ikonę ustawień) na pasku adresu obok URL
Krok 2 — Kliknij Ustawienia witryny
Krok 3 — Kliknij Wyczyść dane, aby usunąć pliki cookie i dane w cache tylko dla tej witryny
Krok 4 — Przeładuj stronę
# Chrome keyboard shortcut to open Clear Browsing Data:
# Windows/Linux: Ctrl + Shift + Delete
# macOS: Cmd + Shift + DeleteAlternatywnie przejdź do chrome://settings/clearBrowserData, zaznacz Pliki cookie i inne dane witryn oraz Obrazy i pliki w pamięci podręcznej, ustaw zakres czasowy na Cały czas i kliknij Wyczyść dane.
Czyszczenie plików cookie w Firefox i Safari
Firefox: Naciśnij Ctrl+Shift+Delete (Mac: Cmd+Shift+Delete), zaznacz Ciasteczka i Pamięć podręczna, ustaw zakres czasowy na Wszystko i kliknij Wyczyść teraz.
Safari: Przejdź do Safari > Ustawienia > Prywatność > Zarządzaj danymi witryn, wyszukaj daną domenę, zaznacz ją i kliknij Usuń. Następnie wyczyść pamięć podręczną skrótem Cmd+Option+E.
Poprawka 2: Sprawdź konfigurację SSL/HTTPS
Błędna konfiguracja SSL to przyczyna nr 1 pętli przekierowań. Najczęstszy scenariusz to konflikt między CDN/proxy a serwerem źródłowym co do użycia HTTP lub HTTPS.
Oto co zazwyczaj idzie nie tak: CDN łączy się z serwerem po HTTP (ponieważ obsługuje terminację SSL), ale serwer wymusza przekierowanie HTTP na HTTPS. Serwer odsyła CDN na HTTPS, CDN usuwa HTTPS i ponownie wysyła HTTP — nieskończona pętla.
Sprawdź certyfikat SSL — Użyj SSL Checker od DNS Robot, aby zweryfikować, że certyfikat jest ważny, nie wygasł i obejmuje poprawną domenę
Dopasuj protokoły — Jeśli CDN obsługuje terminację SSL, usuń przekierowanie HTTP na HTTPS na serwerze lub skonfiguruj CDN, aby łączył się z serwerem po HTTPS
Sprawdź ustawienia wymuszania HTTPS — Jeśli masz zarówno przekierowanie na poziomie serwera (Nginx/Apache), JAK I na poziomie CDN wymuszające HTTPS, usuń jedno z nich
Zweryfikuj nagłówek X-Forwarded-Proto — Za proxy Twój serwer powinien sprawdzać ten nagłówek zamiast surowego protokołu połączenia, aby określić, czy oryginalne żądanie było HTTPS
Poprawka 3: Napraw pętlę przekierowań Cloudflare
Cloudflare jest najczęstszym źródłem ERR_TOO_MANY_REDIRECTS ze względu na sposób działania jego trybów SSL. Rozwiązanie zależy od używanego trybu szyfrowania SSL/TLS.
| Tryb SSL | Połączenie z serwerem | Powoduje pętlę, gdy... |
|---|---|---|
| Flexible | HTTP (nieszyfrowane) | Serwer ma przekierowanie HTTP->HTTPS |
| Full | HTTPS (bez weryfikacji certyfikatu) | Serwer przekierowuje HTTPS->HTTP |
| Full (Strict) | HTTPS (z weryfikacją certyfikatu) | Serwer przekierowuje HTTPS->HTTP |
Rozwiązanie dla 90% pętli przekierowań Cloudflare: zmień tryb szyfrowania SSL/TLS z Flexible na Full lub Full (Strict). To informuje Cloudflare, aby łączył się z serwerem po HTTPS, eliminując pętlę HTTP-HTTPS.
Poprawka Cloudflare krok po kroku
Krok 1 — Zaloguj się do panelu Cloudflare
Krok 2 — Wybierz swoją domenę
Krok 3 — Przejdź do SSL/TLS > Overview
Krok 4 — Zmień tryb szyfrowania na Full (Strict), jeśli masz ważny certyfikat SSL na serwerze, lub Full, jeśli masz certyfikat samopodpisany
Krok 5 — Przejdź do SSL/TLS > Edge Certificates i sprawdź, czy Always Use HTTPS jest włączone. Jeśli serwer już przekierowuje na HTTPS, wyłącz to, aby uniknąć podwójnego przekierowania
Krok 6 — Sprawdź Page Rules i Redirect Rules pod kątem kolidujących przekierowań URL
Krok 7 — Wyczyść cache Cloudflare: przejdź do Caching > Configuration > Purge Everything
Poprawka 4: Napraw reguły przekierowań w .htaccess (Apache)
Na serwerach Apache .htaccess to najczęstsze miejsce reguł przekierowań i najczęstsze źródło pętli przekierowań. Kolidujące reguły, zduplikowane przekierowania lub brakujące warunki mogą tworzyć pętle.
Szukaj zduplikowanych przekierowań HTTPS — Jeśli panel hostingu (cPanel, Plesk) wymusza HTTPS, usuń ręczne przekierowanie z .htaccess
Sprawdź warunki RewriteCond — Każda reguła RewriteRule przekierowująca powinna mieć RewriteCond zapobiegający jej uruchomieniu na URL-ach, które już spełniają warunek. Bez tego reguła uruchamia się przy każdym żądaniu, włącznie z już przekierowanym
Uważaj na flagę [L] — Flaga
[L]oznacza 'ostatnia reguła', ale tylko dla bieżącego przejścia. Jeśli w podkatalogu istnieje inny.htaccess, uruchamia się ponownie. Użyj[END]na Apache 2.4+Sprawdź nagłówki proxy — Za CDN użyj
%{HTTP:X-Forwarded-Proto}zamiast%{HTTPS}, aby wykryć oryginalny protokół
# Correct HTTPS redirect behind Cloudflare/CDN:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]Jeśli nie jesteś pewien, która reguła powoduje pętlę, tymczasowo zmień nazwę .htaccess na .htaccess.bak i sprawdź, czy witryna się ładuje. Jeśli tak, problem tkwi w pliku .htaccess. Włączaj reguły pojedynczo, aż znajdziesz tę problematyczną.
Poprawka 5: Napraw pętlę przekierowań WordPress
Pętle przekierowań w WordPress zazwyczaj pochodzą z trzech źródeł: niezgodne URL w ustawieniach, konflikty wtyczek lub nieprawidłowe wartości w wp-config.php. Jeśli nie możesz dostać się do panelu WordPress z powodu pętli przekierowań, musisz naprawić to bezpośrednio przez bazę danych lub pliki konfiguracyjne.
Advertisement
Sprawdź ustawienia URL WordPress
WordPress ma dwa ustawienia URL, które muszą być zgodne: Adres WordPressa (URL) i Adres witryny (URL) w Ustawienia > Ogólne. Jeśli jedno używa http://, a drugie https://, lub jedno zawiera www., a drugie nie, otrzymasz pętlę przekierowań.
Jeśli nie możesz dostać się do panelu administracyjnego, ustaw adresy URL bezpośrednio w wp-config.php:
// Add these lines to wp-config.php (above "That's all, stop editing!"):
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
// If behind a reverse proxy (Cloudflare, Nginx proxy):
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}Wyłącz wtyczki, aby znaleźć konflikty
Wtyczki przekierowań i buforowania są częstymi winowajcami. Wtyczki takie jak Redirection, Yoast SEO, Really Simple SSL, WP Super Cache i W3 Total Cache mogą dodawać reguły przekierowań kolidujące z konfiguracją serwera lub CDN.
Jeśli nie możesz dostać się do panelu, wyłącz wszystkie wtyczki przez FTP lub SSH:
# Rename the plugins folder to disable all plugins at once:
cd /var/www/html/wp-content/
mv plugins plugins.bak
# If the site loads, rename it back and disable plugins one by one:
mv plugins.bak plugins
# Then rename individual plugin folders to find the culprit:
mv plugins/really-simple-ssl plugins/really-simple-ssl.bakJeśli wyłączenie wtyczek naprawi błąd, włączaj je pojedynczo, aby zidentyfikować kolidującą wtyczkę. Najczęściej winnymi są wtyczki SSL dodające przekierowania HTTP na HTTPS, gdy serwer lub CDN już to obsługuje.
Poprawka 6: Napraw przekierowania na poziomie serwera (Nginx i Apache)
Pliki konfiguracyjne serwera mogą zawierać reguły przekierowań kolidujące z przekierowaniami na poziomie aplikacji (WordPress, .htaccess) lub ustawieniami CDN.
Nginx: Szukanie konfliktów przekierowań
Pętle przekierowań w Nginx zazwyczaj występują, gdy blok serwera HTTP przekierowuje na HTTPS, ale coś w bloku HTTPS przekierowuje z powrotem na HTTP. Sprawdź konfigurację witryny:
# Correct Nginx HTTPS redirect (separate server blocks):
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
# SSL certificate configuration here
# DO NOT add another redirect to HTTPS here
}
# If behind Cloudflare/proxy, check real protocol:
server {
listen 80;
server_name example.com;
if ($http_x_forwarded_proto != 'https') {
return 301 https://example.com$request_uri;
}
}Apache: Sprawdzanie przekierowań VirtualHost
W Apache sprawdź zarówno konfigurację VirtualHost, jak i .htaccess. Przekierowanie w konfiguracji VirtualHost plus przekierowanie w .htaccess tworzy podwójne przekierowanie, które może się zapętlić:
# Check Apache config for redirect rules:
grep -r 'Redirect\|RewriteRule' /etc/apache2/sites-enabled/
grep -r 'Redirect\|RewriteRule' /etc/httpd/conf.d/
# Check .htaccess:
cat /var/www/html/.htaccess | grep -i 'rewrite\|redirect'Usuń zduplikowane przekierowania — zachowaj przekierowanie tylko w jednym miejscu. Najlepsza praktyka to obsługa przekierowań HTTPS w konfiguracji VirtualHost (nie w .htaccess), ponieważ reguły VirtualHost są przetwarzane raz na żądanie, podczas gdy .htaccess jest przetwarzany przy każdym żądaniu.
Poprawka 7: Rozwiązywanie problemów specyficznych dla przeglądarki
Jeśli błąd pojawia się tylko w jednej przeglądarce, problem prawdopodobnie dotyczy buforowanego przekierowania lub konfliktu rozszerzenia, a nie serwera.
Chrome: Czyszczenie HSTS i puli gniazd
Chrome buforuje polityki HSTS (HTTP Strict Transport Security) wymuszające HTTPS. Jeśli witryna wcześniej wysłała nagłówek HSTS, ale już nie używa poprawnie HTTPS, Chrome będzie nadal przekierowywał na HTTPS nawet po wyczyszczeniu plików cookie.
Wyczyść cache HSTS — Przejdź do
chrome://net-internals/#hsts, wpisz domenę w polu Delete domain security policies i kliknij DeleteOpróżnij pulę gniazd — Przejdź do
chrome://net-internals/#socketsi kliknij Flush socket pools, aby wyczyścić buforowane połączeniaWyczyść cache DNS — Przejdź do
chrome://net-internals/#dnsi kliknij Clear host cachePrzetestuj w trybie incognito — Otwórz okno incognito (
Ctrl+Shift+N) i spróbuj otworzyć URL. Jeśli w trybie incognito działa, a w normalnym oknie nie, przyczyną jest buforowane przekierowanie lub rozszerzenie
Poprawki dla Firefox i Safari
Firefox: Wpisz about:config w pasku adresu, wyszukaj network.http.redirection-limit i sprawdź, czy jest ustawiony na 20 (domyślnie). Jeśli rozszerzenie zmieniło tę wartość na bardzo małą liczbę, przekierowania mogą kończyć się przedwcześnie. Spróbuj też usunąć dane witryny: Ustawienia > Prywatność i bezpieczeństwo > Zarządzaj danymi > wyszukaj domenę > Usuń zaznaczone.
Safari: Safari wyświetla "too many redirects occurred" i oferuje mniej szczegółowy błąd niż Chrome. Przejdź do Safari > Ustawienia > Prywatność > Zarządzaj danymi witryn, znajdź domenę i usuń jej dane. Jeśli problem nie ustępuje, spróbuj Safari > Wyczyść historię (wybierz całą historię).
Jak zapobiegać pętlom przekierowań
Po naprawieniu błędu stosuj te praktyki, aby pętle przekierowań nie powtórzyły się:
Przekierowuj tylko w jednym miejscu — Wybierz jedną warstwę dla przekierowania HTTPS: CDN, serwer web lub aplikacja. Nigdy nie przekierowuj na kilku warstwach jednocześnie
Używaj 302 podczas testów — Podczas debugowania używaj przekierowań 302 (tymczasowych) zamiast 301 (stałych). Przeglądarki agresywnie buforują 301, co utrudnia testowanie zmian. Przejdź na 301, gdy potwierdzisz poprawne działanie
Zawsze testuj z curl — Po dodaniu reguły przekierowania uruchom
curl -ILs https://twojastrona.com | grep -i 'HTTP/\|location:', aby zweryfikować, że łańcuch przekierowań kończy się odpowiedzią 200Monitoruj narzędziami — Regularnie używaj HTTP Headers Checker od DNS Robot, aby sprawdzać, czy witryna zwraca czystą odpowiedź 200 bez nieoczekiwanych przekierowań
Dokumentuj przekierowania — Prowadź rejestr wszystkich reguł przekierowań w konfiguracji serwera, .htaccess, regułach CDN i ustawieniach aplikacji. Gdy kilku członków zespołu zarządza witryną, nieudokumentowane przekierowania są przyczyną nr 1 pętli
Czyść cache CDN po zmianach — Po modyfikacji dowolnej reguły przekierowania natychmiast wyczyść cache CDN. Stare buforowane 301 mogą utrzymywać się przez dni
Wpływ pętli przekierowań na SEO
Pętle przekierowań bezpośrednio szkodzą Twojemu rankingowi w wyszukiwarkach. Crawler Google (Googlebot) podąża za maksymalnie 10 przekierowaniami na URL, po czym rezygnuje. Jeśli Googlebot napotka pętlę przekierowań, oznacza stronę jako błąd crawlowania i przestaje ją indeksować.
Według dokumentacji Google o przekierowaniach, łańcuchy przekierowań powinny być jak najkrótsze. Każdy dodatkowy skok dodaje około 100-500 ms opóźnienia i marnuje budżet crawlowania — liczbę stron, które Google przeskanuje na Twojej witrynie dziennie.
Utrata indeksowania — Strony uwięzione w pętlach przekierowań nie są indeksowane i całkowicie znikają z wyników wyszukiwania
Zmarnowany budżet crawlowania — Googlebot zużywa swój ograniczony budżet crawlowania na podążanie za przekierowaniami zamiast skanowania rzeczywistej treści
Kara za szybkość strony — Każde przekierowanie 301 dodaje pełną podróż w obie strony (100-500 ms). Trzy przekierowania mogą dodać ponad sekundę do czasu ładowania
Rozproszenie link equity — Linki zwrotne wskazujące na URL z przekierowaniem tracą około 1-5% wartości PageRank na każdy skok
Advertisement
Sprawdź swój łańcuch przekierowań teraz
Użyj darmowego Redirect Checker od DNS Robot, aby prześledzić każdy skok w łańcuchu przekierowań i natychmiast zidentyfikować pętle. Sprawdź też nagłówki HTTP i status certyfikatu SSL.
Wypróbuj Redirect CheckerAdvertisement
Często zadawane pytania
ERR_TOO_MANY_REDIRECTS oznacza, że przeglądarka wykryła nieskończoną pętlę przekierowań. Witryna ciągle przerzuca przeglądarkę między adresami URL bez załadowania strony. Chrome i Firefox pozwalają na maksymalnie 20 przekierowań przed wyświetleniem tego błędu, Safari na około 16.