Kako rešiti ERR_TOO_MANY_REDIRECTS grešku. Idi do glavnog sadržaja

Kako rešiti ERR_TOO_MANY_REDIRECTS grešku u WordPress-u

ERR_TOO_MANY_REDIRECTS greška spada u najčešće probleme sa kojima se možete susresti u WordPress-u. Poznata je i pod nazivom petlja redirekcije (redirect loop) i javlja se kada browser počne bez prestanka da redirektuje saobraćaj sa jedne na drugu URL adresu. 

U tom slučaju browser ne može da isprati veliki broj redirekcija i tada dolazi do prekida učitavanja web sajta. To je situacija koju svakako ne želite da se desi sa vašim web sajtom.

Zato ćemo u ovom tekstu objasniti kako da rešite ovu grešku ukoliko vam se nekada pojavi.

Ali hajde prvo da vidimo šta je ERR_TOO_MANY_REDIRECTS greška i šta je prouzrokuje.

Šta je ERR_TOO_MANY_REDIRECTS greška?

Da bismo razumeli šta je petlja redirekcije, prvo treba da razumemo šta je redirekcija.

Redirekcija je u osnovi preusmeravanje koje browser radi kada dobije direktivu od web servera da treba da se preusmeri na drugu URL adresu. Najčešće je u pitanju uobičajena 301 direktiva koja se uglavnom postavlja u slučaju:

  • promene URL adrese web sajta
  • brisanja web stranice i postavljanja 404 stranice
  • promene domena na celom web sajtu

U svakom od navedenih slučajeva, redirekcija preusmerava saobraćaj sa prvobitne URL adrese na neku drugu URL adresu na koju ste podesili da se redirektuje saobraćaj. 

Problem se javlja ukoliko su postavljene redirekcije u međusobnom konfliktu. Na primer, kada URL A redirektuje na URL B, a URL B redirektuje nazad na URL A.

Ovakva redirekcija prouzrokuje da se browser zaglavi u tzv. beskonačnoj petlji. Drugim rečima, browser korisnika će preusmeravati sa URL A na URL B, pa onda opet sa URL B na URL A i tako će se stvoriti beskonačni ciklus koji će raditi sve dok browser ne zaključi da je korisnik ušao u beskonačnu petlju ili dok ne dostigne maksimalan broj redirekcija.

Ovo ograničenje kod većine popularnih browsera iznosi 20 uzastopnih preusmerenja. U tom slučaju će browser prekinuti dalje učitavanje web sajta, kako bi sačuvao svoje memorijske resurse, a korisniku će prijaviti grešku ERR_TOO_MANY_REDIRECTS.

Ukoliko niste sigurni kako da podesite 301 redirekciju na svom sajtu, predlažemo da pročitate Kako podesiti 301 trajnu redirekciju u .htaccess fajlu i cPanel-u.

Kako ERR_TOO_MANY_REDIRECTS greška utiče na vaš web sajt?

Očigledno je da greška ERR_TOO_MANY_REDIRECTS ne dozvoljava korisniku da otvori vaš web sajt. To je samo po sebi dovoljno ozbiljan problem.

U nekim slučajevima ova greška može biti ograničena samo na određenu stranicu, pa ako je brzo rešite onda realno ne predstavlja veliki problem.

Međutim, ukoliko ova redirekcija pogađa ceo web sajt i pritom se dešava neko duže vreme, to može imati veoma loše posledice po korisničko iskustvo koje korisnici imaju na vašem sajtu. 

Posredno to će negativno uticati kako na reputaciju, tako i na prihode vaše vaše kompanije, a u krajnjoj instanci može imati dugoročne posledice po SEO skor vašeg sajta.

Šta prouzrokuje grešku ERR_TOO_MANY_REDIRECTS?

Neki od najčešćih uzroka ERR_TOO_MANY_REDIRECTS greške su:

  • Problemi sa browser-om (posebno kolačići i keširanje)
  • Pogrešno konfigurisan WordPress
  • Neispravan SSL/TLS sertifikat (HTTPS podešavanja)
  • Neispravna podešavanja ili konflikti sa WordPress plugin-om
  • Problemi sa third-party servisima (npr CDN servisom)
  • Pogrešna podešavanja servera (npr. podešavanja .htaccess fajla)
  • Hostovanje više web sajtova na istom web serveru i loša konfiguracija
  • Pogrešna migracija web sajta ili domena

Nakon ove poduže liste potencijalnih uzroka, nameće se logično pitanje kako možete da predupredite ili rešite ERR_TOO_MANY_REDIRECTS grešku kada do nje već dođe.

Kako rešiti ERR_TOO_MANY_REDIRECTS grešku?

Problemi sa browserom (kolačići i keširanje)

U situacijama kada posetilac vašeg sajta dobije sa vašeg sajta grešku ERR_TOO_MANY_REDIRECTS, postoji mogućnost da njegov browser ima oštećene ili zastarele kolačiće i keš koji dovode do beskonačne petlje. Ovo nema direktne veze sa vašim web sajtom, ali je dobro da znate kako se takav problem rešava. 

To je ujedno i prvi korak koji možete da preduzmete, ukoliko ste se prethodno uverili da ne postoji problem na strani servera.

Da biste proverili da li je problem u browseru korisnika, najbolje je da ga uputite da kratko testira vaš sajt ili problematičnu stranicu u privatnom/inkognito modu ili iz nekog drugog browsera. Ako tada sajt ili stranica radi normalno, a prethodno niste detektovali bilo kakav problem na strani servera ili WordPress-a, znaćete da je do keša ili kolačića. 

Posetiocima koji prijavljuju grešku savetujte da prvo probaju da obrišu keš i kolačiće ili da osveže stranicu na način koji ignoriše keš (npr. Ctrl + F5 na Windows-u). Ukoliko je bio problem do kolačića i keša iz browsera, problem će na taj način biti rešen.

Problemi sa keširanjem na samom sajtu

ERR_TOO_MANY_REDIRECTS greška može da se pojavi i ako vaš web sajt koristi neki sistem keširanja (na nivou WordPress-a, servera ili CDN-a), a u tom kešu je ostalo zapamćeno loše preusmeravanje. 

Recimo, plugin za keš može čuvati staru verziju .htaccess pravila ili kod plugina koji je ranije bio pogrešno konfigurisan, pa je nastavio da isporučuje neispravnu redirekciju čak i kada ste je u međuvremenu ispravili.

Keš plugini u WordPress-u

Ako koristite plugin za keširanje (poput LiteSpeed Cache, W3 Total Cache, WP Super Cache, WP Rocket ili sličnih), obrišite keš u njegovim podešavanjima. Najčešće je dovoljno da uđete u sekciju Settings (Podešavanja) samog plugina i kliknete na „Purge Cache“ ili „Clear All Cache“ dugme. Tako ćete primorati WordPress da generiše svež sadržaj bez starih podataka koji bi mogli da uzrokuju petlju preusmeravanja.

Server-side keš

Server-side keširanje je veoma korisna funkcionalnost za keširanje, odnosno ubzavanje učitavanja web sajta. Zato neki napredniji hosting provajderi, u koje spada i Plus.rs, imaju ugrađenu opciju keširanja na samom serveru (server-side caching). U cPanelu postoji opcija da se taj keš obriše. 

Ako vam vaša hosting kompanija nudi takvu funkciju i imate greške s beskonačnim preusmeravanjem, obrišite i taj keš kako biste izbegli da stari podaci sprečavaju pravilno učitavanje sajta. 

Plus.rs nudi sjajan alat LiteSpeed Cache Manager kojim možete da obrišete keš sa web servera. Dovoljno je da se ulogujete na svoj cPanel nalog i pronađete sekciju pod nazivom Advanced

Tu ćete videti ikonicu pod nazivom LiteSpeed Cache Manager. Kliknite na tu ikonicu i otvoriće vam se dashboard alata.

Sada kliknite na dugme Flush All da biste obrisali keš. 

Napomena: Imajte u vidu da će ova akcija obrisati keš iz svih vaših sajtova koje hostujete na svom web serveru. Ukoliko imate više sajtova na istom web serveru, a želite da obrišete keš samo na nekom od njih, a da ne dirate keš na ostalim sajtovima, onda ćete to morati da uradite kroz admin dashboard tog konkretnog sajta.

CDN keš

Ako koristite CDN (poput Cloudflare ili neke druge usluge), moraćete da obrišete i njihov keš. Cloudflare u svom kontrolnom panelu ima opciju Purge Cache, a i drugi CDN servisi nude slične alate. Ukoliko su konfliktna preusmeravanja smeštena u CDN keš, čak i ispravna lokalna podešavanja sajta neće imati efekta dok se taj keš ne osveži.

Imajte u vidu da, kada menjate neka važna podešavanja (poput WordPress URL-a ili .htaccess fajla) ili ispravljate grešku koja stvara petlju, obavezno uvek obrišete keš na svim nivoima, kako biste bili sigurni da će nove, ispravne postavke odmah biti primenjene.

Pogrešno konfigurisan WordPress

WordPress kao CMS ima dva ključna parametra koji se tiču URL adresa, a nalaze se u okviru Settings > General (polja WordPress Address (URL) i Site Address (URL)). 

Ti podaci moraju biti usklađeni, a pogrešne vrednosti mogu lako izazvati ERR_TOO_MANY_REDIRECTS. 

Na primer, ako je u jednom polju adresa sa prefiksom www, a u drugom bez njega, ili ako u jednom piše http:// umesto https://, WordPress će pokušati da ispravi svaki zahtev i vrati ga na ono što on smatra pravilnim. Ako je to suprotno nekom drugom podešavanju, nastaje beskonačna petlja.

Proverite da li vam se adrese poklapaju po svim detaljima, uključujući protokol (HTTP/HTTPS) i prefiks www. Ukoliko se ne poklapaju, ispravite to i sačuvajte promene. 

Ako vas sam WordPress backend ne pušta zbog greške, to možete uraditi i direktnim upisom u bazi podataka (u tabeli wp_options) ili korišćenjem wp-config.php fajla gde definišete:

define( 'WP_HOME', 'https://nekisajt.rs' );
define( 'WP_SITEURL', 'https://nekisajt.rs' );

Naravno, zamenite nekisajt.rs stvarnom adresom svog web sajta. Kada uskladite adrese, WordPress preusmeravanja bi trebalo da se srede i u tom slučaju greška će nestati.

Neispravan SSL/TLS sertifikat (HTTPS podešavanja)

SSL/TLS sertifikat omogućava da vaš sajt radi preko HTTPS protokola, čime se enkriptuje komunikacija između vašeg web servera i browsera korisnika i na taj način povećava bezbednost. Međutim, ako je sertifikat nepravilno instaliran ili ako WordPress i/ili server nisu usklađeni, vrlo lako može doći do beskonačnog preusmeravanja. 

Tipičan primer je da WordPress forsira HTTPS, dok neki plugin ili server pokušava da ostane na HTTP-u, pa svako od njih neprestano menja protokol.

Najčešći simptomi:

  • Sajt ne može da se učita preko https:// i vraća se na http://, ili obrnuto.
  • U podešavanjima WordPress-a stoji HTTP adresa, dok je sertifikat na serveru aktivan.

Da biste to ispravili, proverite prvo da li je sertifikat pravilno instaliran u cPanel-u. Ulogujte se na svoj cPanel nalog i pronađite sekciju pod nazivom Security. 

Sada kliknite na ikonicu SSL/TLS Status i otvoriće vam se alat za proveru statusa SSL/TLS sertifikata. 

Ukoliko su svi domeni i poddomeni označeni zelenim, to znači da je sertifikat ispravno instaliran i aktivan. Ako postoji neki problem, moraćete da ponovite instalaciju ili obnovite sertifikat. dobra vest je što vam Plus.rs uz svaki zakupljeni hosting paket nudi potpuno besplatan SSL sertifikat, koji se automatski obnavlja pre isteka.

Takođe proverite da li i WordPress adrese u potpunosti rade preko https://. Ako koristite plugin za SSL (npr. Really Simple SSL), proverite da li se ne kosi s nekim drugim pluginom ili .htaccess pravilom koje pokušava drugačije da reši preusmerenja. 

Kada se svi slojevi usklade – server, WordPress, plugin za SSL i eventualno CDN – trebalo bi da se ERR_TOO_MANY_REDIRECTS greška više ne pojavljuje.

Neispravna podešavanja ili konflikti sa WordPress plugin-om

Plugini su jedan od važnih ali ujedno i jedan od najranjivijih delova WordPress ekosistema. Bilo koji plugin koji menja strukturu linkova, radi automatska preusmeravanja, reguliše SSL ili se bavi keširanjem, može da dovede do konflikta sa postojećim pravilima i dovede do beskonačne petlje. 

Na primer, plugin za redirekcije (tipa Redirection) može da uđe u konflikt s pluginom za SSL, ili plugin za keš može da sačuva staru verziju redirekcije i da je stalno iznova pokreće.

Najlakši način da testirate da li plugin pravi problem jeste da privremeno deaktivirate sve plugine. Ako tada greška nestane, znači da je neki od njih uzrok. Onda ih ponovo aktivirajte jedan po jedan, dok ne uočite tačno koji plugin dovodi do ERR_TOO_MANY_REDIRECTS. 

Deaktivaciju plugin-a možete da radite iz admin dashboard-a i to je najlakši način ukoliko imate pristup admin dashboard-u. U slučaju da ne možete da pristupite admin dashboard-u, deaktivaciju možete da uradite i preko cPanel-a.

Za detaljnije instrukcije kako da deaktivirate plugin, predlažemo da pročitate Kako da deaktivirate WordPress plugin čak iako nemate pristup wp-admin delu.

Kada otkrijete problematičan plugin, proverite njegova podešavanja ili pogledajte logove da vidite ima li u njemu opcija za preusmeravanje koje nisu usklađene sa vašim WordPress URL-om ili serverom.

Problemi sa third-party servisima (npr. CDN)

Mnogi vlasnici web sajtova danas koriste CDN (Content Delivery Network) servise, poput Cloudflare-a, kako bi ubrzali učitavanje i zaštitili sajt. Iako je to generalno korisno, dešava se da upravo CDN postane izvor beskonačne petlje, posebno ako je aktivirana neka opcija poput Flexible SSL. Tada CDN komunicira s korisnicima putem HTTPS-a, ali s vašim serverom i dalje putem HTTP-a, pa WordPress pokušava da preusmeri sve nazad na HTTPS, stvarajući na taj način dvostruko preusmeravanje.

U Cloudflare podešavanjima, preporučljivo je koristiti Full ili Full (strict) SSL mod kada zaista imate validan SSL na serveru. 

Takođe, ako Cloudflare (ili drugi CDN) ima opciju da čuva preusmeravanja u kešu, moraćete da ručno obrišete taj keš (purge cache) da biste se uverili da se i dalje ne primenjuju stara pravila.

Bitno je i da proverite da li plugin za SSL u WordPress-u i Cloudflare nisu istovremeno podešeni da rade suprotne stvari – na primer jedan da forsira https://, a drugi možda menja ili detektuje HTTP.

Uskladite sve postavke da biste izbegli petlje preusmeravanja.

Ukoliko želite da saznate više o podešavanju Cloudflare CDN servisa i LiteSpeed Cache plugina predlažemo da obavezno pročitate Kako da podesite LiteSpeed Cache plugin sa Cloudflare-om.

Pogrešna podešavanja servera (.htaccess fajl i sl.)

WordPress se u većini slučajeva oslanja na Apache server i fajl .htaccess kako bi generisao permalinkove ali i izvršio razne druge radnje. Ukoliko ručno ili pomoću nekog plugina dodate pogrešna pravila u .htaccess, to veoma lako može da izazove lanac preusmeravanja. 

Na primer, neko ubaci pravilo da se sve preusmeri na https://nekisajt.rs, a ispod toga postoji drugo pravilo koje vraća sve na http://nekisajt.rs. To će naravno dovesti do beskonačnog preusmeravanja.

Najbrži test jeste da preimenujete stari .htaccess u nešto drugo (recimo old.htaccess), pa da u WordPress-u otvorite Settings > Permalinks i kliknete na Save. Time će WordPress ponovo generisati svoj podrazumevani blok koda u novom .htaccess fajlu. 

Ako nakon toga greška nestane, znači da je bio problem u starom .htaccess fajlu. Nakon toga, možete dodavati ručno željena pravila, ali proveravajte posle svake izmene da li sve radi. 

Ako koristite NGINX server, njegova podešavanja su u posebnom fajlu konfiguracije, pa bi i tu moglo da dođe do sličnih konflikata ukoliko se pogrešno definišu rewrite pravila.

Ukoliko želite da saznate više o .htaccess fajlu i šta sve možete da uradite sa njim, predlažemo da pročitate Kako da pomoću .htaccess fajla unapredite rad svog web sajta.

U slučaju da imate neki problem sa .htaccess fajlom, predlažemo da pročitate Kako da popravite .htaccess fajl.

Hostovanje više web sajtova na istom web serveru

Kada imate više web sajtova na jednom serveru, može se desiti da su podešavanja za domen ili poddomen preusmeravanja pomešana. 

Primera radi, ako se u fajlovima .htaccess ili u virtuelnim host podešavanjima prepliću parametri za dva različita sajta, server možda ne zna na koje tačno podešavanje da primeni koje pravilo, pa pokušava da popravi URL. 

Tako nastaje petlja u kojoj se domen A prebacuje na domen B, pa opet nazad.

Rešenje je da uvek vodite računa da su definicije virtuelnih hostova (na Apache ili NGINX serveru) jasno razdvojene po domenima ili poddomenima, da svaki ima svoj .htaccess i svoju konfiguracionu strukturu. 

Takođe, pazite da WordPress instalacije imaju ispravne adrese (u bazi i podešavanjima). Ako je sve pomešano, lako se i najjednostavnija redirekcija pretvori u beskrajnu petlju.

Pogrešna migracija web sajta ili domena

Migracija sajta s jednog domena na drugi ili s jednog hostinga na drugi zahteva pažljivo usklađivanje WordPress adresa, baza podataka i potencijalno .htaccess pravila. 

Ukoliko ste promenili URL, ali ga niste ažurirali u WordPress-u, pluginovima i bazi, sajt može da pokuša da preusmeri korisnike sa novog domena na stari i obrnuto. Takođe, ako su neke stavke u bazi ostale sa starom URL adresom, nastaje lanac preusmeravanja.

Najbolje je da migraciju radite planski, uz alat poput Duplicator-a ili All-in-One WP Migration, ili da ručno odradite traženje i zamenu starih URL adresa novim (koristeći SQL upite ili plugine za search & replace). 

Ukoliko želite da pronalaženje i zamenu URL-ova uradite ručno, bez korišćenja plugina, predlažemo da prethodno pročitate Kako da pronađete i zamenite URL-ove i tekst u WordPress bazi – bez plugina.

Takođe, migraciju web sajta možete da uradite i potpuno ručno, bez plugina. Predlažemo da pre toga pročitate Kako uraditi migraciju sajta sa jednog live-servera na drugi (bez plugin-a).

Predlažemo da na kraju proverite i linkove u .htaccess fajlu, kao i plugine koji su možda imali definisane redirekcije. Kada se sve uskladi (WordPress adrese, .htaccess, nov hosting, ispravan SSL, pluginovi), ERR_TOO_MANY_REDIRECTS greška bi trebalo da nestane.

Zaključak

ERR_TOO_MANY_REDIRECTS greška može da bude frustrirajuća, ali u najvećem broju slučajeva je lako rešiva kada se otkrije izvor beskonačne petlje i isprave neusklađene postavke. 

Kao vlasnik web sajta, najpre proverite da li su WordPress podešavanja (Site URL i WordPress URL) ispravna, zatim bacite pogled na .htaccess i eventualne plugine koji bi mogli da se sukobljavaju oko preusmerenja. 

Proverite i keš unutar browser-a, ali i na strani servera.

Posebnu pažnju obratite na SSL postavke, jer neusklađenost HTTP/HTTPS putanje vrlo često izaziva ovu grešku.

Ako koristite CDN, proverite da li je njegova konfiguracija (posebno SSL mod) usklađena sa vašim serverom i WordPress pluginovima.

Ukoliko sve ovo uskladite, problem ERR_TOO_MANY_REDIRECTS će biti rešen.

Nenad Mihajlović


Ostavite odgovor