TrueURL

Gratis redirecttool

Redirectloop-checker

Meldt je browser dat een site je “te vaak heeft omgeleid”, dan stuurt die site je in een kringetje rond. TrueURL volgt de redirects tot de loop rond is en toont elke URL die erbij betrokken is.

Wat is een redirectloop?

Een redirectloop ontstaat als URL A doorstuurt naar URL B, en B direct of via andere hops weer terugstuurt naar A. Browsers volgen ongeveer 20 redirects en geven het dan op met een foutmelding: ERR_TOO_MANY_REDIRECTS (“te vaak omgeleid”) in Chrome en Edge, The page isn’t redirecting properly in Firefox of Too many redirects occurred in Safari. Zoekmachines kunnen een pagina die in een loop vastzit niet indexeren.

Zo detecteert TrueURL loops

TrueURL legt elke URL vast die het opvraagt, samen met de requestmethode en de cookies die het op dat moment heeft. Leidt een hop terug naar een URL die al in dezelfde toestand is opgevraagd, dan kan de keten nooit eindigen, en markeert het resultaat de hop waar de loop zich sluit.

Omdat TrueURL cookies bewaart zoals een browser, kan het een echte loop onderscheiden van een normale cookie-handshake, waarbij een site een cookie zet en je één keer terugstuurt naar dezelfde URL. Verandert de toestand bij elke ronde, dan gaat de keten door tot de limiet van Max. aantal hops onder Geavanceerde instellingen (maximaal 50). Een keten die de limiet bereikt, is meestal ook een eindeloze loop, bijvoorbeeld een loop die bij elke hop een nieuwe queryparameter toevoegt.

Veelvoorkomende oorzaken van redirectloops

  • HTTP en HTTPS achter een proxy of CDN: het CDN maakt via HTTP verbinding met je server (zoals bij de SSL-modus Flexible van Cloudflare), terwijl de server elk HTTP-verzoek doorstuurt naar HTTPS. De browser vraagt opnieuw om HTTPS, het CDN haalt opnieuw HTTP op, enzovoort. Gebruik de modus Full (strict), of laat maar één laag de HTTPS-redirect afhandelen.
  • Tegenstrijdige www-regels: de ene regel voegt www toe, terwijl een andere, vaak in het CMS of het hostingpaneel, die weer weghaalt.
  • Tegenstrijdige regels voor de trailing slash: de server voegt een slash toe en de applicatie haalt hem weer weg.
  • Adresinstellingen in het CMS: in WordPress bijvoorbeeld een WordPress-adres of Site-adres dat niet overeenkomt met het domein of protocol waarop de site werkelijk wordt geserveerd.
  • Redirects voor inloggen, toestemming en regio: een pagina stuurt bezoekers zonder een bepaalde cookie naar een inlog-, toestemmings- of landenpagina, die hen weer terugstuurt, maar de cookie wordt nooit gezet of nooit geaccepteerd.

Zo los je een redirectloop op

  1. Controleer de URL hier en noteer welke URL’s zich herhalen en welke hop je terugstuurt.
  2. Bekijk de responseheaders van die hop, zoals Server, Via, CF-Ray of X-Powered-By, om te zien welke laag de redirect stuurde: het CDN, de webserver of de applicatie.
  3. Herstel die ene regel of schakel hem uit, en controleer opnieuw. Pas telkens maar één laag aan.
  4. Wis de cache en de cookies van je browser voor de site voordat je in je browser test. Gecachete 301’s en verouderde cookies kunnen een loop in stand houden nadat hij al is opgelost.

Gidsen

  • 12 min. leestijd

    URL-redirects controleren en redirectketens lezen

    Redirects controleren met TrueURL, curl en DevTools: lees elke hop van een redirectketen en los loops, lange ketens en gemengde 301- en 302-redirects op.

    Artikel lezen

Veelgestelde vragen

Wat betekent ERR_TOO_MANY_REDIRECTS?

Dat is de foutmelding van Chrome voor een redirectketen die na 20 redirects nog niet is geëindigd. Dat is bijna altijd een loop: de redirectregels van de site spreken elkaar tegen. Controleer de URL hierboven om te zien welke URL’s zich herhalen.

Kan een redirectloop alleen sommige bezoekers treffen?

Ja. Loops die afhangen van cookies, taal, locatie of apparaat treffen alleen bezoekers in die situatie. Reproduceer ze via Geavanceerde instellingen: voeg de cookie, een Accept-Language-header of een mobiele user-agent toe en controleer opnieuw. Loops die afhangen van de locatie van de bezoeker kun je niet reproduceren, omdat het verzoek altijd vanuit het netwerk van Cloudflare komt.

Waarom lost het wissen van cookies de loop in mijn browser op?

Dan was het een loop door cookies: een verouderde of conflicterende cookie liet de site je in een kringetje rondsturen. Cookies wissen zet jouw toestand terug, maar de bug blijft bestaan voor elke bezoeker die dezelfde cookie krijgt. Gebruik het veld Cookies onder Geavanceerde instellingen om het probleem hier te reproduceren.

Waarom vindt TrueURL een loop terwijl de pagina in mijn browser werkt?

Je browser is misschien ingelogd, heeft toestemmingscookies, of heeft een HSTS-vermelding of een gecachete redirect waardoor een van de hops wordt overgeslagen. TrueURL begint zonder cookies en zonder geschiedenis, net als een nieuwe bezoeker of een crawler. Vindt TrueURL een loop, dan lopen nieuwe bezoekers en crawlers er waarschijnlijk ook tegenaan, tenzij de site verzoeken uit datacenters anders behandelt.

Wat is het verschil tussen een loop en het bereiken van Max. aantal hops?

Een loop betekent dat TrueURL terugkwam bij een URL die het al in dezelfde toestand had opgevraagd, zodat de keten nooit kan eindigen. Max. aantal hops betekent dat TrueURL stopte na het ingestelde aantal redirects, zonder exacte herhaling. Die keten eindigt misschien ooit, maar een keten van die lengte is hoe dan ook een probleem. Je kunt Max. aantal hops verhogen tot 50 om verder te kijken.

Kan een CDN een redirectloop veroorzaken?

Ja, dat is een van de meest voorkomende oorzaken. Praat het CDN via HTTP met je server terwijl de server HTTPS afdwingt, of sturen het CDN en de server in tegengestelde richting door tussen www en zonder www, dan kaatsen ze elk verzoek heen en weer. De responseheaders van elke hop laten zien welke laag antwoordde.