Zbyt wiele przekierowań: co oznacza ten błąd i jak go naprawić
Opublikowany: 2022-09-27„Zbyt wiele przekierowań”, znany również jako pętla przekierowań, to błąd, który przeglądarka zwróci, jeśli żądana strona internetowa nie załaduje się z powodu nieskończonej liczby przekierowań, które musi wykonać, aby pobrać dowolną zawartość z serwera. Pętle przekierowań mogą być często spowodowane przez sprzeczne przekierowania po stronie serwera lub błędną konfigurację CDN.
W tym obszernym przewodniku po naprawie błędu „Zbyt wiele przekierowań” dowiesz się, gdzie można skonfigurować przekierowania, jakie są najczęstsze przyczyny powstawania pętli przekierowań i jak je rozwiązać krok po kroku.
Czym są przekierowania i jak działają?
Przekierowania witryn internetowych można zdefiniować jako kroki, które należy podjąć podczas dostarczania treści, aby znaleźć lokalizację żądanej strony internetowej. Podczas gdy dla Ciebie może się wydawać, że zmiana osiągnięta za pomocą reguły przekierowania odzwierciedla tylko sposób wyświetlania adresu witryny w pasku adresu, Twoja przeglądarka wykonuje szereg operacji za kulisami, aby określić, dokąd prowadzi każde przekierowanie, zanim będzie mogła załadować jakiekolwiek zawartość z ostatecznej lokalizacji określonej przez ścieżkę przekierowania.
Wymuszanie HTTPS, wersji www strony internetowej lub ładowanie innej nazwy domeny — przekierowania są szeroko stosowane w hostingu stron internetowych, co pozwala dostosować dostarczanie treści. Istnieje wiele sposobów na skonfigurowanie przekierowań domeny i dopóki są one poprawnie skonfigurowane, przeglądarki nie będą mieć żadnych problemów z przestrzeganiem utworzonych przez Ciebie reguł.
Tymczasowe i stałe przekierowania
Istnieją dwa główne typy przekierowań, które można skonfigurować — tymczasowe i stałe. W zależności od typu napotkanego przekierowania serwer sieciowy zwróci kod stanu 302 lub 301 HTTP.
Kod odpowiedzi HTTP 302 pokazuje, że określony adres internetowy jest tymczasowo przekierowywany do innej lokalizacji. Czasami jednak można zauważyć, że tymczasowe przekierowanie jest stosowane, gdy usuniesz stałą regułę przekierowania ze swojej witryny, ale nie opróżnisz jej pamięci podręcznej, co uniemożliwiło widoczność zmian.
Może się tak zdarzyć, jeśli używasz dowolnego rozwiązania do buforowania, w tym jednej z wtyczek buforowania WordPress. Twoja przeglądarka będzie również przechowywać w pamięci podręcznej wersję każdej odwiedzanej witryny, która będzie zawierać stare przekierowania.
Przekierowania stałe zwracają kod statusu 301 HTTP i wskazują, że Twoja witryna lub określona strona została na stałe przeniesiona, co w przypadku przekierowania na HTTPS lub wersję www witryny nie musi oznaczać, że znajduje się ona na zmienił się system plików.
Jakie są najczęstsze przekierowania?
Dwie najczęściej konfigurowane reguły to przekierowania z protokołu internetowego HTTP na HTTPS oraz z wersji bez www na wersję www. Przekierowania do HTTPS zapewniają, że cały ruch sieciowy jest szyfrowany przy użyciu certyfikatu SSL, podczas gdy przekierowania do www są często używane do integracji sieci dostarczania treści z Twoją witryną za pomocą rekordu CNAME.
HTTP do HTTPS
Przekierowanie z HTTP do HTTPS, często określane jako wymuszanie HTTPS, może być skonfigurowane tak, aby upewnić się, że żadna treść nie jest dostarczana do użytkownika witryny przez niezabezpieczone połączenie HTTP. Jeśli na Twojej stronie jest zainstalowany ważny certyfikat SSL/TLS, zazwyczaj nie musisz ręcznie wymuszać HTTPS, ale dodanie takiego przekierowania może być jednym ze sposobów radzenia sobie z mieszaną zawartością.
Mieszana zawartość
Zawartość mieszaną na stronie można zdefiniować jako sytuację, w której podstawowy plik HTML jest ładowany przez HTTPS, ale inne zasoby, do których się odwołuje, w tym obrazy, pliki Javascript lub CSS, są dostarczane odwiedzającemu przez HTTP. Nawet jeśli masz zainstalowany ważny certyfikat SSL, przeglądarki nadal będą wyświetlać ostrzeżenie o zabezpieczeniach, jeśli na stronie internetowej zostanie zidentyfikowana zawartość mieszana.
Skonfigurowanie przekierowania w celu rozwiązania problemu z mieszaną zawartością zazwyczaj nie jest najlepszym rozwiązaniem. Zamiast tego należy zaktualizować wszystkie adresy URL (Uniform Resource Locators) w bazie danych witryny, tak aby zawierały protokół HTTPS zamiast HTTP. Można to zrobić ręcznie, korzystając z funkcji wyszukiwania zastępczego, którą oferuje WP CLI lub wtyczki WordPress. W przypadku innych systemów zarządzania treścią będziesz musiał zmodyfikować adresy za pomocą narzędzia do administrowania bazą danych, takiego jak phpMyAdmin lub uruchamiając zapytania MySQL/MariaDB z wiersza poleceń.
3 główne lokalizacje, w których można skonfigurować przekierowania
Przekierowania można generalnie skonfigurować w jednej z trzech głównych lokalizacji:
- Konfiguracja serwera WWW . Globalne pliki konfiguracyjne używane przez serwer sieciowy zawierają ustawienia, które są zwykle stosowane do wszystkich hostowanych witryn, więc dodawanie przekierowań do jednej z nich nie jest zalecane. Używanie lokalnych plików konfiguracyjnych tworzonych dla każdej witryny indywidualnie jest standardem konfigurowania przekierowań po stronie serwera.
- Konfiguracja systemu zarządzania treścią . Twój system zarządzania treścią przechowuje adres Twojej witryny w bazie danych jako stałą, która może zostać wykorzystana do wymuszenia HTTPS lub załadowania jego wersji www.
- Konfiguracja sieci dostarczania treści . Twoja sieć CDN wymusi własne przekierowania, które określą, w jaki sposób dokładnie treść jest pobierana z serwera pochodzenia i dostarczana do odwiedzających witrynę.
Przekierowania w plikach konfiguracyjnych serwera WWW
Możesz skonfigurować reguły przekierowań lokalnie w jednym z plików konfiguracyjnych, które odczyta Twój serwer sieciowy. Gdy Apache jest używany jako serwer WWW, reguły przekierowań są zwykle konfigurowane w lokalnym pliku .htaccess na stronie internetowej. Jeśli używany jest NGINX, przekierowania są konfigurowane w bloku serwera NGINX, który reprezentuje globalną konfigurację Twojej witryny.
Poniżej możesz zobaczyć dwa przekierowania, które można dodać do .htaccess — jedno wymuszające HTTPS, a drugie wysyłające wszystkie żądania sieciowe do wersji www witryny. Należy przestrzegać ścisłych reguł składni, w przeciwnym razie istnieje ryzyko awarii witryny, jeśli Apache wykryje jakiekolwiek błędy składni w jednym z lokalnych plików konfiguracyjnych.
Jeśli korzystasz z wtyczek przekierowujących do WordPressa, najprawdopodobniej napiszą one również swoje przekierowania do Twojego lokalnego pliku .htaccess.
Przekierowania w konfiguracji WordPress
WordPress i inne systemy zarządzania treścią umieszczają adres strony internetowej w bazie danych, a ustawienie jest ładowane za każdym razem, gdy żądana jest jakakolwiek treść. Adres reprezentuje adres URL, który składa się z nazwy domeny i protokołu internetowego, HTTP lub HTTPS. Zmieniając adresy URL w bazie danych, możesz przekierować swoją witrynę na www lub wymusić HTTPS, jeśli jest zainstalowany certyfikat SSL/TLS.
WordPress używa stałej WP_HOME do identyfikacji ustawienia adresu WordPress i WP_SITEURL jako adresu witryny, które są przechowywane w tabeli wp_options jako siteurl i home. Ustawienie Adres WordPressa odnosi się do lokalizacji instalacji WordPressa, natomiast Adres Witryny to adres URL, który należy wpisać w pasku adresu przeglądarki, aby otworzyć witrynę.
Przekierowania wymuszone przez CDN
Twoja konfiguracja sieci dostarczania treści określa, w jaki sposób może pobierać żądane strony internetowe z serwera pochodzenia i dostarczać je odwiedzającym Twoją witrynę — za pośrednictwem protokołu HTTP lub HTTPS. Dokładne procedury są określone przez wybrany tryb szyfrowania. Istnieją trzy główne typy szyfrowania oferowane przez nowoczesne sieci dostarczania treści:
- Pełne lub kompleksowe szyfrowanie . Pełne szyfrowanie zapewnia stosowanie protokołu HTTPS na wszystkich etapach dostarczania treści. Oznacza to, że wszystkie żądania internetowe z przeglądarki do CDN i z CDN do serwera źródłowego są zawsze wysyłane przez HTTPS. Szyfrowanie typu end-to-end wymaga dwóch certyfikatów SSL — jednego zainstalowanego na serwerze pochodzenia, a drugiego zaimplementowanego przez CDN.
- Elastyczne lub częściowe szyfrowanie . Częściowe szyfrowanie wymusza, aby wszystkie połączenia z przeglądarki CDN przechodziły przez HTTPS, podczas gdy CDN połączy się z serwerem pochodzenia przez HTTP. Twoja witryna będzie jednak nadal wyświetlana jako bezpieczna we wszystkich przeglądarkach.
- Brak szyfrowania . Po wyłączeniu szyfrowania dostarczanie treści będzie odbywać się za pośrednictwem protokołu HTTP, a wszystkie przeglądarki będą wyświetlać ostrzeżenie dotyczące bezpieczeństwa podczas ładowania Twojej witryny.
Jeśli CDN próbuje zainicjować połączenie przez HTTPS, ale Twój serwer sieciowy przekierowuje żądania HTTPS do HTTP, tworzona jest pętla przekierowania, która powoduje wyświetlenie błędu zbyt wielu przekierowań w Twojej witrynie.
Co oznacza błąd „Zbyt wiele przekierowań”?
„Zbyt wiele przekierowań”, często określane jako pętla przekierowań, to komunikat o błędzie, który wskazuje na konflikt, który występuje podczas dostarczania treści, spowodowany przez dwa konkurujące ze sobą przekierowania. Gdy zostanie zidentyfikowana pętla przekierowania, nowoczesne przeglądarki zwrócą jedną z następujących odmian błędu:
- Strona nie przekierowuje prawidłowo . Możesz zobaczyć ten komunikat o błędzie w Firefoksie.
- Strona nie działa. ERR_TOO_MANY_REDIRECTS . Google Chrome wyświetli ten błąd, gdy utknie w pętli przekierowań.
- Safari nie może otworzyć strony, ponieważ wystąpiło zbyt wiele przekierowań . W ten sposób Safari poinformuje Cię, jakie konflikty przekierowań należy rozwiązać przed załadowaniem witryny.
Aby naprawić błąd zbyt wielu przekierowań, musisz przejrzeć przekierowania skonfigurowane w .htaccess i wymuszone przez system zarządzania treścią oraz sprawdzić, jaki tryb szyfrowania jest używany przez sieć dostarczania treści, jeśli taki jest używany.
3 najczęstsze błędy konfiguracji, które powodują pętlę przekierowań w Twojej witrynie i jak je rozwiązać?
Przechodzenie przez wszystkie przekierowania w celu zidentyfikowania konfliktu nie jest łatwym zadaniem, zwłaszcza jeśli niektóre są dodane do globalnej konfiguracji serwera WWW, co sprawia, że są stosowane na całym serwerze. Istnieją jednak bardzo często spotykane błędy konfiguracji, które nieuchronnie prowadzą do pętli przekierowań.
Trzy najczęstsze powody, dla których widzisz „Zbyt wiele przekierowań” w Twojej witrynie, to:
- Brak ważnego certyfikatu SSL/TLS . Pętla przekierowania może wystąpić, jeśli Twój certyfikat SSL wygasł lub występują inne problemy, ale Twoja witryna nadal próbuje wymusić HTTPS.
- Ustawienia adresu strony internetowej CMS są nieprawidłowe . Jeśli protokół określony w ustawieniach adresu strony internetowej używany przez WordPress lub inny system zarządzania treścią koliduje z innymi skonfigurowanymi przekierowaniami, spowoduje to błąd zbyt wielu przekierowań.
- Wybrano niewłaściwy tryb szyfrowania CDN . Szczególnie często pojawiają się pętle przekierowań podczas przełączania na pełne szyfrowanie w konfiguracji CDN. Jeśli wymagania dotyczące korzystania z szyfrowania typu end-to-end nie są spełnione przez serwer pochodzenia, może to spowodować problemy.
Brak ważnego certyfikatu SSL/TLS
Zainstalowany na stronie ważny certyfikat SSL/TLS podpisany przez CA zapewnia, że cały ruch sieciowy jest szyfrowany, gdy jest dostarczany z serwera do przeglądarki. Co więcej, HTTPS jest prawdopodobnie wymuszony na poziomie serwera, co działa idealnie do momentu wygaśnięcia certyfikatu SSL i nie jest odnawiane automatycznie. Może się to zdarzyć z następujących powodów:
- Automatyczne odnawianie certyfikatów SSL/TLS nie jest włączone . Jeśli SSL nie został odnowiony automatycznie, będziesz musiał zamówić nowy certyfikat i zainstalować go.
- Weryfikacja domeny SSL nie powiodła się . Szyfrujmy lub Sectigo, jeden z najczęściej używanych dostawców SSL oferujących bezpłatne certyfikaty, wdraża różne wyzwania, aby sprawdzić, czy kontrolujesz nazwy domen, dla których musi zostać wydany nowy certyfikat. Jeśli weryfikacja domeny nie powiedzie się, nowy certyfikat nie zostanie zainstalowany, dopóki nie rozwiążesz problemu, który blokuje żądanie weryfikacji.
- Wygasł główny lub jeden z certyfikatów pośrednich . Kiedy tak się stanie, będziesz musiał ponownie zainstalować certyfikat, gdy dostawca SSL rozwiąże problem po swojej stronie.
Jak się adresować
Sprawdź, czy Twoja witryna ma zainstalowany ważny certyfikat, używając jednego z kontrolerów SSL. Jeśli wygasł lub narzędzie sprawdzania SSL pokazuje inne problemy, zainstaluj ponownie certyfikat. Jeśli Let's Encrypt lub Sectigo nie wydadzą darmowego certyfikatu, będziesz musiał sprawdzić, co może blokować żądanie walidacji.
Jednym z powodów niepowodzenia weryfikacji domeny SSL jest zintegrowanie sieci dostarczania treści, zwłaszcza jeśli ostatnim razem, gdy Let's Encrypt lub Sectigo wystawiły certyfikat, nie został on jeszcze skonfigurowany. Jeśli chcesz zainstalować nowy bezpłatny certyfikat SSL, wstrzymaj CDN, aby Twoja witryna wskazywała bezpośrednio serwer, zwracając swój główny adres IP, a nie adres IP należący do sieci dostarczania treści. W ten sposób możesz odnowić certyfikat na serwerze pochodzenia, aby nadal korzystać z szyfrowania typu end-to-end.
Ustawienia adresu strony internetowej CMS są nieprawidłowe
WordPress i wszystkie inne systemy zarządzania treścią mogą wymusić przekierowania do HTTPS lub www, przechowując adres Twojej witryny w bazie danych i ładując go za każdym razem, gdy żądana jest jakakolwiek treść. Jeśli ustawienia adresu witryny są niepoprawnie skonfigurowane — przy użyciu niewłaściwego protokołu lub nazwy domeny — spowoduje to problemy, w tym zbyt wiele błędów przekierowań.
Jak się adresować
Jeśli masz zainstalowany certyfikat SSL, zwłaszcza jeśli szyfrowanie end-to-end jest zapewnione przez konfigurację CDN, użyj HTTPS zarówno w ustawieniach Adres WordPressa, jak i Adres strony. Jeśli Twoja witryna została przekierowana na wersję www, zarówno uczestnicy WP_SITEURL, jak i WP_HOME muszą to odzwierciedlić.
Otwórz menu Ustawienia ogólne pulpitu WordPress i popraw wymagane wartości przypisane do adresu WordPress i adresu witryny. Kliknij Zapisz zmiany, aby WordPress zmodyfikował ustawienia w bazie danych.
Wybrano zły tryb szyfrowania CDN
Nie może być żadnych konfliktów między przekierowaniami skonfigurowanymi na serwerze źródłowym a trybem szyfrowania używanym przez CDN lub zobaczysz błąd „Zbyt wiele przekierowań” podczas próby załadowania Twojej witryny w dowolnej przeglądarce. Upewnij się, że wybrałeś właściwy tryb szyfrowania, który najlepiej odpowiada potrzebom Twojej witryny.
Ponieważ sieć dostarczania treści zawsze szyfruje ruch między swoimi serwerami a przeglądarką, chyba że całkowicie wyłączysz szyfrowanie, możesz zrezygnować z instalowania protokołu SSL na serwerze źródłowym. Wybierz częściowe szyfrowanie i upewnij się, że nie wymuszasz HTTPS na poziomie serwera, aby uniknąć problemów z akceptacją żądań z CDN przez HTTP.
Jeśli wybrano szyfrowanie typu end-to-end, na serwerze pochodzenia należy zainstalować prawidłowy certyfikat SSL, aby sieć CDN mogła łączyć się przez HTTPS. Jeśli nie możesz ręcznie zainstalować nowego certyfikatu, za każdym razem, gdy trzeba odnowić SSL, tymczasowo wstrzymaj CDN, aby uniknąć problemów z weryfikacją domeny.
Jak się adresować
Sprawdź aktualną konfigurację i zdecyduj, jaki tryb szyfrowania należy wybrać. Przełącz się na inny typ szyfrowania, aby naprawić błąd „Zbyt wiele przekierowań” w Twojej witrynie spowodowany konfliktem przekierowania na serwerze pochodzenia lub brakiem protokołu SSL wymaganego do obsługi szyfrowania typu end-to-end.
Jak naprawić „zbyt wiele przekierowań” w 3 krokach?
W poniższych krokach dowiesz się, jak zidentyfikować sprzeczne przekierowania i szybko naprawić pętlę przekierowań w Twojej witrynie.
Krok 1. Sprawdź ścieżkę przekierowania swojej witryny
Wiele źródeł zaleca wyczyszczenie pamięci podręcznej przeglądarki jako pierwszy krok do rozwiązywania problemów z pętlami przekierowań. Jednak, podobnie jak w przypadku każdego innego błędu, zadziała tylko wtedy, gdy problem został rozwiązany na serwerze, ale przeglądarka nadal przechowuje uszkodzoną wersję Twojej witryny w swojej pamięci podręcznej. Zazwyczaj po wprowadzeniu jakichkolwiek zmian w witrynie możesz opróżnić jej pamięć podręczną, aby zobaczyć ich odzwierciedlenie.
Pierwszym krokiem do naprawy „Zbyt wielu przekierowań” jest podążanie ścieżką przekierowania Twojej witryny, aby zobaczyć, gdzie dokładnie przeglądarka utknęła. Najlepszym sposobem na to jest użycie jednego z kontrolerów przekierowań.
Wszystkie lub większość kontrolerów przekierowań używa cURL, doskonałego narzędzia wiersza poleceń do przesyłania danych przy użyciu różnych protokołów sieciowych. Możemy go użyć do uzyskania informacji z nagłówka HTTP, które pokażą, co dokładnie dzieje się po próbie załadowania witryny.
Zapisz następujący prosty skrypt Bash do pliku o nazwie redirects.sh po połączeniu się z serwerem przez SSH. Spraw, aby był wykonywalny, uruchamiając chmod +x redirects.sh.
Uruchom skrypt, przekazując go do nazwy domeny swojej witryny. Na przykład ./redirects.sh wordpress.com.
Krok 2. Zidentyfikuj sprzeczne przekierowania
Sprawdź dane wyjściowe, które uruchomiłeś powyższy skrypt. Powie Ci, jakiego rodzaju przekierowania powodują pojawienie się „Zbyt wielu przekierowań”, gdy przeglądarka rezygnuje z przestrzegania sprzecznych reguł. Na poniższym wyjściu widzimy, że istnieje nieskończone przekierowanie z HTTP i HTTPS.
Zanotuj kody statusu zwrotu każdego przekierowania. Stałe przekierowania często pochodzą z pliku .htaccess witryny, podczas gdy tymczasowe przekierowania są zwykle generowane w kodzie witryny, więc są kontrolowane przez WordPress lub inny system zarządzania treścią, z którego korzystasz.
Krok 3. Zaadresuj pętlę przekierowań
W zależności od zidentyfikowanych sprzecznych reguł przekierowań będziesz wiedział, gdzie je zapętlić. Jak już wspomnieliśmy, należy sprawdzić trzy główne rzeczy — lokalny plik .htaccess, ustawienia adresu witryny przechowywane w bazie danych witryny przez CMS oraz tryb szyfrowania wybrany w konfiguracji CDN.
Jeśli pętla przekierowania występuje, gdy Twoja witryna próbuje przekierować między HTTP i HTTPS, sprawdź, czy masz zainstalowany ważny certyfikat SSL/TLS i jaki tryb szyfrowania jest wybrany w konfiguracji CDN, jeśli masz jakąkolwiek integrację z Twoją witryną. Sprawdź adres witryny i adres WordPress określone dla Twojej witryny i przechowywane w bazie danych WordPress.
Postępuj zgodnie z instrukcjami podanymi w poprzedniej sekcji przewodnika, aby rozwiązać typowe błędy konfiguracji i naprawić „Zbyt wiele przekierowań” w swojej witrynie.
Wniosek
Komunikat o błędzie „Zbyt wiele przekierowań”, znany również jako pętla przekierowań, pojawia się w Twojej witrynie, gdy przeglądarka nie może załadować żadnej treści z powodu dużej liczby przekierowań, które nastąpiły później. Aby naprawić pętlę przekierowania, musisz rozwiązać konflikt, który istnieje na ścieżce przekierowania.
Prowadzenie firmy online jest pełne wyzwań, a spędzanie godzin na konfigurowaniu infrastruktury serwerowej i naprawianiu błędów nie zawsze jest możliwe. Nie jest też dobrym pomysłem, gdy posiadanie odpowiednich rozwiązań może wyeliminować potrzebę zatrudniania dedykowanego zespołu, aby Twoja witryna działała bez żadnych problemów.
Chroniąc około miliona witryn WordPress, BackupBuddy i iThemes Security Pro to wiodące w branży rozwiązania do zabezpieczania na poziomie aplikacji i odzyskiwania danych. Regularne sprawdzanie podatności i skanowanie pod kątem złośliwego oprogramowania zapewniane przez funkcję Site Scan pozwala znacznie zmniejszyć powierzchnię ataku i chronić witrynę przed wszystkimi znanymi lukami w zabezpieczeniach. Automatyczne kopie zapasowe i łatwe przywracanie jednym kliknięciem — BackupBuddy umożliwia odzyskanie danych po wszystkich złośliwych atakach i typowych błędach.
Najlepsza wtyczka bezpieczeństwa WordPress do zabezpieczania i ochrony WordPressa
WordPress obsługuje obecnie ponad 40% wszystkich stron internetowych, więc stał się łatwym celem dla hakerów o złych zamiarach. Wtyczka iThemes Security Pro eliminuje zgadywanie z zabezpieczeń WordPress, aby ułatwić zabezpieczenie i ochronę witryny WordPress. To tak, jakby zatrudniać pełnoetatowego eksperta ds. bezpieczeństwa, który stale monitoruje i chroni Twoją witrynę WordPress.
Kiki posiada licencjat z zarządzania systemami informatycznymi i ponad dwuletnie doświadczenie w Linuksie i WordPressie. Obecnie pracuje jako specjalista ds. bezpieczeństwa w Liquid Web i Nexcess. Wcześniej Kiki była częścią zespołu wsparcia Liquid Web Managed Hosting, gdzie pomogła setkom właścicieli witryn WordPress i dowiedziała się, z jakimi problemami technicznymi często się spotykają. Jej pasja do pisania pozwala jej dzielić się wiedzą i doświadczeniem, aby pomagać ludziom. Oprócz technologii Kiki lubi poznawać kosmos i słuchać podcastów o prawdziwych przestępstwach.