Redirect Loop eli uudelleenohjaussilmukka on tilanne, jossa uudelleenohjaukset muodostavat loputtoman kehän: sivu A ohjaa sivulle B, joka ohjaa takaisin sivulle A. Tulos on, ettei mikään sivu koskaan lataudu.
Miten uudelleenohjaussilmukka ilmenee?
Käyttäjä näkee tyypillisesti selaimessa virheilmoituksen:
- Chrome: “This page isn’t working — redirected you too many times”
- Firefox: “The page isn’t redirecting properly”
- Safari: “Safari can’t open the page because too many redirects occurred”
Selain yrittää seurata uudelleenohjauksia tietyn määrän (tyypillisesti 20 kertaa) ja luovuttaa sitten.
Yleisimmät syyt redirect-silmukoihin
Silmukat syntyvät yleensä ristiriitaisista asetuksista:
- HTTPS-ohjaus + HTTP-pakotus — palvelin ohjaa HTTPS:ään, mutta toinen sääntö ohjaa takaisin HTTP:hen
- www-konflikti — yksi sääntö ohjaa www-versioon, toinen pois www-versiosta
- CDN vs. palvelin — CDN ohjaa HTTPS:ään, mutta palvelin vaatii HTTP-yhteyttä
- WordPress-lisäosa — uudelleenohjauslisäosa luo ristiriitaisen ohjauksen
- Väärä .htaccess-sääntö — yleisohjauksessa virhe, joka kattaa myös kohde-URL:n
Kuinka korjata redirect-silmukka?
Korjausvaiheet:
- Tyhjennä selaimen välimuisti — vanha ohjaus voi olla tallentunut selaimeen
- Tarkista uudelleenohjaussäännöt — käy läpi kaikki ohjaussäännöt (.htaccess, _redirects, palvelimen asetukset)
- Tarkista CDN-asetukset — varmista, ettei CDN ja palvelin anna ristiriitaisia ohjeita
- Testaa curl-komennolla —
curl -I -L URLnäyttää kaikki ohjaukset ketjussa - Poista ristiriitaiset säännöt — vain yksi järjestelmä saa hallita kutakin ohjausta
Yhteenveto
Uudelleenohjaussilmukka estää sivuston toiminnan kokonaan ja vaatii välitöntä korjausta. Se johtuu lähes aina ristiriitaisista ohjaussäännöistä eri järjestelmien välillä. Ennakointi on paras lääke: testaa kaikki uudelleenohjausmuutokset huolellisesti ennen tuotantoon viemistä ja varmista, ettei eri järjestelmissä ole päällekkäisiä sääntöjä.