Skip to content

Wszystko o WordPressie, tworzeniu stron — i nie tylko

🔧 Jak naprawić błąd ERR_TOO_MANY_REDIRECTS w WordPress: 6 rozwiązań

🔧 Jak naprawić błąd ERR_TOO_MANY_REDIRECTS w WordPress: 6 rozwiązań

Ви wchodzą Państwo na swoją stronę, a zamiast zwykłej witryny przeglądarka wyświetla „ERR_TOO_MANY_REDIRECTS". Strona się nie ładuje, panel administracyjny jest niedostępny, odwiedzający widzą błąd. Panika? Nie, da się to naprawić.

Technicznie błąd oznacza, że przeglądarka wpadła w nieskończoną pętlę przekierowań: strona A kieruje na stronę B, ta z powrotem na A, i tak w kółko, dopóki przeglądarka się nie podda. W WordPressie taka sytuacja zdarza się częściej, niż by się chciało, i prawie zawsze winne są nie ataki hakerów, a niewinna zmiana ustawień.

Poniżej sześć sprawdzonych sposobów na przywrócenie strony do działania. Od najszybszego (wyczyszczenie pamięci podręcznej przeglądarki) po serwerowy (sprawdzenie przekierowań HTTPS). Proszę stosować po kolei, jeden z nich rozwiąże problem.

💡 Szybki przegląd:

  • Proszę wyczyścić pamięć podręczną i pliki cookie przeglądarki: wykluczy to lokalną przyczynę problemu
  • Proszę sprawdzić adres URL strony w ustawieniach WordPressa oraz w wp-config.php: rozbieżność WP_HOME/WP_SITEURL psuje przekierowania
  • Proszę wyczyścić pamięć podręczną wtyczek WP (WP Super Cache, WP Rocket, W3 Total Cache) oraz CDN: cache przechowuje stare reguły
  • Proszę odtworzyć .htaccess: uszkodzony plik często generuje zbędne przekierowania
  • Proszę wyłączyć wtyczki i znaleźć tę powodującą konflikt: szczególnie te, które zarządzają przekierowaniami lub SSL
  • Proszę sprawdzić ustawienia HTTPS: nieprawidłowe wymuszone przekierowanie z HTTP na HTTPS zapętla ruch
Czyszczenie pamięci podręcznej i plików cookie w przeglądarce Chrome

Proszę zacząć od prostego kroku. Przeglądarka przechowuje zapisane w cache przekierowania i jeśli strona chwilowo miała awarię, stara pamięć podręczna może Państwa gonić w kółko nawet po tym, jak problem na serwerze został już naprawiony.

W Chrome: trzy kropki w prawym górnym rogu → „Ustawienia" → „Prywatność i bezpieczeństwo" → „Wyczyść dane przeglądania". Proszę zaznaczyć „Pliki cookie" oraz „Obrazy i pliki zapisane w pamięci podręcznej", zakres „Od początku", kliknąć „Usuń dane".

W Firefox: trzy kreski → „Ustawienia" → „Prywatność i bezpieczeństwo" → sekcja „Ciasteczka i dane stron" → „Usuń dane". Proszę zaznaczyć oba pola wyboru, potwierdzić.

Po wyczyszczeniu proszę otworzyć stronę w trybie incognito (Ctrl+Shift+N w Chrome). Zadziałało? A zatem problem był lokalny. Nie, idziemy dalej. Swoją drogą, jeśli potrzebują Państwo całkowicie wyczyścić pamięć podręczną w różnych przeglądarkach, mamy osobną instrukcję czyszczenia pamięci podręcznej przeglądarki, proszę poszukać jej na stronie.

2. Proszę sprawdzić adres URL strony w ustawieniach WordPressa

Konfiguracja adresu URL witryny w panelu administracyjnym WordPress

Rozbieżność adresu strony i adresu WordPressa to jedna z najczęstszych przyczyn pętli przekierowań. Proszę wejść do panelu administracyjnego: „Ustawienia" → „Ogólne". Pola „Adres WordPress (URL)" oraz „Adres strony (URL)" muszą być zgodne (lub różnić się celowo, jeśli WordPress znajduje się w podfolderze).

Proszę upewnić się, że:

  • Protokół jest wszędzie taki sam: albo wszędzie https://, albo wszędzie http://
  • www albo występuje w obu polach, albo nie ma go w żadnym
  • Domena jest wpisana bez błędów i zbędnych ukośników na końcu

Kliknęli Państwo „Zapisz", ale błąd pozostał? Albo panel administracyjny w ogóle nie otwiera się z powodu przekierowań? W takim razie poprawiamy przez wp-config.php.

Proszę połączyć się z serwerem przez FTP/SFTP lub przez menedżer plików hostingu. Proszę znaleźć w katalogu głównym strony plik wp-config.php i dodać do niego dwie linijki (zaraz po <?php lub przed /* That's all, stop editing! */):

1define('WP_HOME', 'https://vash-sait.com');
2define('WP_SITEURL', 'https://vash-sait.com');

Proszę zastąpić vash-sait.com swoją rzeczywistą domeną, z poprawnym protokołem i bez www, jeśli strona otwiera się bez niego. Proszę zapisać, wgrać z powrotem na serwer, sprawdzić stronę, przekierowania często znikają natychmiast po tym kroku.

3. Proszę usunąć pamięć podręczną WordPressa i CDN

Usuwanie pamięci podręcznej we wtyczce WP Super Cache

Jeśli na stronie jest zainstalowana wtyczka buforująca, mogła zapamiętać „błędne" przekierowania i nadal je serwować, nawet gdy źródło zostało poprawione.

Proszę wejść do panelu administracyjnego i znaleźć stronę zarządzania pamięcią podręczną:

Korzystają Państwo z Cloudflare lub innego CDN? Proszę wejść do panelu CDN i wyczyścić tam pamięć podręczną. Po wyczyszczeniu proszę tymczasowo wstrzymać działanie CDN, w trybie „Development Mode" lub „Bypass Cache", i sprawdzić stronę. Czasami to właśnie CDN zapętla przekierowania z powodu niezgodności HTTP/HTTPS na poziomie proxy.

4. Proszę odtworzyć plik.htaccess

Zawartość pliku .htaccess WordPress do przywracania

.htaccess to plik tekstowy w katalogu głównym strony, za pomocą którego Apache zarządza przekierowaniami. Jeden zbędny wiersz, wadliwa wtyczka lub ręczna edycja i strona wpada w pętlę.

Proszę połączyć się z serwerem przez FTP/SFTP, znaleźć .htaccess i zmienić jego nazwę na .htaccess_old. To wyłączy wszystkie niestandardowe reguły, ale zachowa kopię na wypadek, gdyby w środku było coś ważnego.

Teraz należy utworzyć nowy, czysty .htaccess ze standardowymi regułami WordPress. Jeśli panel administracyjny jest dostępny: „Ustawienia" → „Bezpośrednie odnośniki" → proszę po prostu kliknąć „Zapisz zmiany" (niczego nie zmieniając). WordPress sam odtworzy .htaccess.

Panel administracyjny jest niedostępny? Proszę utworzyć plik ręcznie i skopiować do niego:

1<IfModule mod_rewrite.c>
2RewriteEngine On
3RewriteBase /
4RewriteRule ^index\.php$ - [L]
5RewriteCond %{REQUEST_FILENAME} !-f
6RewriteCond %{REQUEST_FILENAME} !-d
7RewriteRule . /index.php [L]
8</IfModule>

Proszę zapisać, wgrać do katalogu głównego strony i sprawdzić. Jeśli korzystają Państwo z Nginx, reguły są zapisywane w konfiguracji serwera i .htaccess nie ma na niego wpływu; do edycji konfiguracji Nginx potrzebny jest dostęp do /etc/nginx/sites-available/.

5. Proszę znaleźć konfliktową wtyczkę

Folder plugins_disabled do wyłączania wszystkich wtyczek WordPress

Wtyczki do przekierowań, wtyczki SSL (Really Simple SSL, WP Force SSL), a nawet niektóre wtyczki buforujące, to częste przyczyny błędu ERR_TOO_MANY_REDIRECTS. Szczególnie po aktualizacji WordPress lub samej wtyczki.

Jeśli panel administracyjny działa: proszę wyłączyć WSZYSTKIE wtyczki jednocześnie („Wtyczki" → zaznaczyć wszystkie → „Dezaktywuj" → „Zastosuj"). Proszę sprawdzić stronę. Błąd zniknął? Proszę włączać wtyczki pojedynczo i po każdej sprawdzać, w ten sposób znajdą Państwo winowajcę.

Panel administracyjny nie ładuje się z powodu przekierowań? Proszę połączyć się z serwerem przez FTP, przejść do wp-content/ i zmienić nazwę folderu plugins na plugins_disabled. WordPress zauważy, że nie ma folderu plugins, i automatycznie dezaktywuje wszystkie wtyczki.

Strona otworzyła się bez błędu? Proszę przywracać wtyczki pojedynczo: zmienić nazwę folderu konkretnej wtyczki z powrotem (na przykład plugins_disabled/wordpress-seoplugins/wordpress-seo), sprawdzić stronę, powtórzyć. Wtyczka, po przywróceniu której błąd pojawia się ponownie, jest źródłem problemu. Proszę ją usunąć lub znaleźć zamiennik.

6. Proszę poprawić ustawienia przekierowania HTTPS

Konfiguracja przekierowania HTTPS w pliku .htaccess WordPress

Błąd często pojawia się po zainstalowaniu certyfikatu SSL, gdy witryna zaczyna wymuszać przekierowanie z HTTP na HTTPS, ale konfiguracja została wykonana nieprawidłowo.

Jeśli korzystają Państwo z Apache, proszę otworzyć .htaccess i sprawdzić, czy nie ma tam zduplikowanych lub konfliktujących reguł przekierowania. Prawidłowe przekierowanie z HTTP na HTTPS dla Apache wygląda następująco:

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

W przypadku Nginx regułę definiuje się w konfiguracji serwera:

1server {
2 listen 80;
3 server_name vash-sait.com www.vash-sait.com;
4 return 301 https://vash-sait.com$request_uri;
5}

Częsta pułapka: witryna działa przez Cloudflare lub inny serwis proxy, SSL jest skonfigurowany na poziomie proxy, a WordPress samodzielnie próbuje przekierowywać na HTTPS. Powstaje podwójne przekierowanie, a w efekcie pętla. Rozwiązanie: w Cloudflare proszę włączyć tryb „Full (strict)" w sekcji SSL/TLS, a na serwerze skonfigurować certyfikat (może to być certyfikat origin Cloudflare). Po stronie WordPressa należy usunąć wtyczki wymuszające HTTPS, ustawienia proxy są wystarczające.

⁉️🤔 Często zadawane pytania

Dlaczego błąd pojawia się nagle, skoro niczego nie zmieniałem?

Najczęściej z powodu automatycznych aktualizacji. WordPress zaktualizował się sam, wtyczka pobrała nową wersję, hosting zmienił ustawienia PHP lub włączył wymuszony HTTPS. Z pozoru „niczego Pan nie ruszał", a pod maską zmiany są. Proszę sprawdzić historię aktualizacji w panelu administracyjnym, zazwyczaj winowajcę widać od razu.

Czy można rozwiązać problem bez dostępu do panelu administracyjnego WordPressa?

Tak, większość kroków z tego poradnika wykonuje się właśnie bez panelu administracyjnego: przez FTP/SFTP edytuje Pan wp-config.php i .htaccess, zmienia nazwę folderu plugins. Tylko wyczyszczenie cache wtyczek wymaga zalogowania do panelu, ale i bez tego można po prostu zmienić nazwę folderu wtyczki cache, co ją dezaktywuje.

Czy zmiana przeglądarki lub urządzenia pomoże?

Tymczasowo tak, ale nie rozwiąże to problemu na serwerze. Błąd pojawia się niezależnie od przeglądarki, jeśli przyczyna leży po stronie serwera. Zmiana przeglądarki tylko potwierdza, że problem nie tkwi w lokalnym cache, i wtedy należy postępować zgodnie z krokami 2-6.

Co zrobić, jeśli żaden z sześciu sposobów nie zadziałał?

Proszę sprawdzić łańcuch przekierowań narzędziem takim jak Redirect-Checker.org, pokaże ono, między którymi adresami URL występuje zapętlenie. Proszę skontaktować się z pomocą techniczną hostingu: czasami problem leży w ustawieniach serwera (konfiguracja nginx, load balancer), do których nie ma Pan dostępu. I na wszelki wypadek proszę włączyć WP_DEBUG w wp-config.php, logi mogą wskazać konkretną wtyczkę lub motyw powodujący błąd.

Czy motyw WordPressa może wywołać ten błąd?

Może, choć rzadziej niż wtyczki. Niektóre motywy dodają własne reguły przekierowań w functions.php, na przykład w celu wymuszenia HTTPS lub przekierowania po zalogowaniu. Jeśli wyłączenie wtyczek nie pomogło, proszę tymczasowo przełączyć się na standardowy motyw (Twenty Twenty-Five), zmieniając nazwę folderu Pana motywu w wp-content/themes/.

Błąd został naprawiony. Co dalej?

ERR_TOO_MANY_REDIRECTS wygląda strasznie, ale da się go wyleczyć w 10-15 minut, postępując zgodnie z krokami. W dziewięciu na dziesięć przypadków winne są albo ustawienia URL (krok 2), albo uszkodzony .htaccess (krok 4), albo przekierowanie SSL (krok 6). Proszę zacząć od nich, najprawdopodobniej dalej nie będzie trzeba iść.

A kiedy strona znów zacznie działać, proszę zrobić kopię zapasową natychmiast. Poważnie. wp-config.php, .htaccess i cały folder wp-content proszę zapisać w bezpiecznym miejscu. Następny błąd (a będzie, WordPress to WordPress) zastanie Pana w pełnej gotowości.

A jeśli nie oglądał Pan jeszcze filmu na początku artykułu, proszę do niego wrócić, pokazuje on wizualnie cały proces naprawy na działającej stronie. Działa niezawodnie.