Too many redirects i WordPress – orsaker och lösningar
ERR_TOO_MANY_REDIRECTS eller ”WP HTTP Error: Too many redirects”? Så hittar du omdirigeringsloopen i WordPress – från fel adress till HTTPS bakom Cloudflare.
Kort svar: Felet betyder att sajten skickar besökaren i en loop, till exempel från http till https och tillbaka, eller från www till utan www och tillbaka. De vanligaste orsakerna är:
- WordPress-adresserna stämmer inte med hur sajten faktiskt nås (http/https, med eller utan www).
- HTTPS hanteras av en proxy eller CDN, till exempel Cloudflare, och WordPress tror att besöket kom via http.
- Två omdirigeringar motarbetar varandra, till exempel en regel i
.htaccessoch ett tillägg.
Börja med att testa i ett privat fönster. Fungerar sajten där satt felet bara i webbläsarens cache eller cookies.
Det finns också en variant som inte syns i webbläsaren: ”WP HTTP Error: Too many redirects” när WordPress själv hämtar något, till exempel ett RSS-flöde. Den tar vi sist.
Hur felet ser ut
I Chrome och andra Chromium-baserade webbläsare (Edge, Brave, Opera) visas en felsida med koden ERR_TOO_MANY_REDIRECTS. Firefox och Safari har egna formuleringar, men felet är detsamma: webbläsaren har följt omdirigeringar så många gånger att den har gett upp.
Se vart omdirigeringarna går innan du ändrar något. Med kommandot curl i Terminalen (Mac/Linux) eller PowerShell (Windows 10/11) ser du hela kedjan:
curl -sIL https://dinsajt.se/ | grep -iE "^(HTTP|location)"Ser du samma två adresser upprepas, som http:// → https:// → http://, har du hittat loopen.
Orsak 1: Fel adress i WordPress
WordPress har två adresser under Inställningar → Allmänt:
- WordPressadress (URL): där WordPress-filerna ligger
- Webbplatsadress (URL): adressen besökarna använder
Om de säger http://dinsajt.se men webbhotellet tvingar https://www.dinsajt.se försöker WordPress och servern skicka besökaren åt olika håll.
Lösning: Sätt båda adresserna till exakt den adress sajten ska ha, med rätt protokoll och rätt www-variant, till exempel https://www.dinsajt.se, och spara.
Kommer du inte in i adminpanelen på grund av loopen? Sätt adresserna i wp-config.php i stället. Lägg raderna ovanför /* That's all, stop editing! Happy publishing. */:
define( 'WP_HOME', 'https://www.dinsajt.se' );define( 'WP_SITEURL', 'https://www.dinsajt.se' );Värdena i wp-config.php går före databasen, och fälten under Inställningar → Allmänt blir gråmarkerade så länge raderna finns kvar.
Orsak 2: HTTPS via Cloudflare eller en annan proxy
Det här är den vanligaste orsaken på sajter som använder Cloudflare eller ligger bakom en lastbalanserare.
WordPress avgör om ett besök är krypterat genom att titta på serverns egna variabler ($_SERVER['HTTPS'] och port 443). Det framgår av funktionen is_ssl() i källkoden. När Cloudflare tar emot besöket med HTTPS men skickar det vidare till din server okrypterat tror WordPress att besöket kom via http. Om webbplatsadressen börjar med https slår WordPress dessutom på FORCE_SSL_ADMIN automatiskt och skickar då besökaren till https. Cloudflare skickar återigen vidare via http, och loopen är ett faktum.
Lösning A (bäst): Byt krypteringsläge i Cloudflare. Under SSL/TLS för domänen, välj Full eller Full (strict) i stället för Flexible. Då går trafiken krypterad hela vägen till servern och WordPress ser att besöket är säkert. Full (strict) kräver ett giltigt certifikat på servern, vilket de flesta webbhotell ger gratis via Let’s Encrypt.
Lösning B: Berätta för WordPress att proxyn använder HTTPS. Går det inte att kryptera hela vägen kan du låta WordPress läsa proxyns header X-Forwarded-Proto. Lägg till följande i wp-config.php, ovanför raden require_once ABSPATH . 'wp-settings.php';:
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' === $_SERVER['HTTP_X_FORWARDED_PROTO'] ) { $_SERVER['HTTPS'] = 'on';}Cloudflare beskriver också två inställningar som kan orsaka loopar om servern samtidigt omdirigerar från HTTPS till HTTP: Always Use HTTPS och HSTS. Kontrollera dem om felet uppstod efter att du ändrat något i Cloudflare.
Orsak 3: Dubbla omdirigeringar
Om flera ställen försöker styra adressen kan de motarbeta varandra. Exempel:
.htaccessinnehåller en regel som tvingarwww, medan WordPress-adressen saknarwww.- Webbhotellets kontrollpanel har en egen inställning för HTTPS eller www, och dessutom finns ett tillägg som gör samma sak.
- Ett omdirigeringstillägg (SEO-tillägg, redirect-tillägg eller SSL-tillägg) har en regel som pekar tillbaka till sig själv.
Lösning: Bestäm dig för ett ställe som sköter omdirigeringen, helst webbhotellet eller Cloudflare, och ta bort dubbletterna.
Misstänker du ett tillägg? Inaktivera alla tillägg genom att döpa om mappen wp-content/plugins via FTP och aktivera dem sedan ett i taget. Metoden beskrivs steg för steg i guiden Det har uppstått ett kritiskt fel.
För att testa .htaccess: döp om filen till .htaccess-av och ladda om sajten. Fungerar det nu, gå till Inställningar → Permalänkar och klicka på Spara ändringar utan att ändra något. WordPress skapar då en ny .htaccess med sina egna standardregler. Lägg sedan tillbaka dina egna regler en i taget.
Orsak 4: Cache
Ett cachetillägg eller webbhotellets cache kan ha sparat en sida med fel omdirigering. Töm cachen i tillägget, i webbhotellets kontrollpanel och i Cloudflare (om du använder det), och testa sedan i ett privat fönster.
”WP HTTP Error: Too many redirects” i RSS-flöden
Den här varianten handlar inte om att din sajt loopar. Den uppstår när WordPress själv hämtar en extern adress, till exempel ett RSS-flöde i blocket RSS eller i ett tillägg. Den adressen omdirigerar för många gånger. WordPress följer som standard högst fem omdirigeringar per förfrågan. Därefter avbryts hämtningen och felet visas. På svenska kan det stå ”För många omdirigeringar.”
Lösning:
- Öppna flödets adress i webbläsaren och se var du hamnar. Använd sedan den slutliga adressen direkt, så slipper WordPress följa omdirigeringarna.
- Hamnar du i en loop även i webbläsaren är felet hos flödets ägare. Då hjälper det bara att vänta eller kontakta dem.
- Är flödet ditt eget, till exempel
dinsajt.se/feed/, kontrollera din egen sajt enligt orsakerna ovan.
Checklista
- Testat i privat fönster
- Följt omdirigeringskedjan med
curl -sIL - WordPressadress och Webbplatsadress är identiska och korrekta (https, rätt www-variant)
- Cloudflare: krypteringsläget är Full eller Full (strict), inte Flexible
- Endast ett ställe sköter omdirigering till https och www
- Testat utan tillägg och med en nygenererad
.htaccess - Tömt all cache
Vanliga frågor
Kan jag förlora något på att ändra adresserna under Inställningar → Allmänt?
Ja, en felaktig adress kan låsa dig ute från adminpanelen. Anteckna de gamla värdena innan du ändrar. Kommer du inte in efteråt kan du sätta rätt adresser med WP_HOME och WP_SITEURL i wp-config.php, som beskrivs i guiden.
Varför fungerar sajten för mig men inte för andra (eller tvärtom)?
Webbläsare sparar permanenta omdirigeringar (301) och cookies. Har loopen redan rättats kan din webbläsare ändå minnas den gamla omdirigeringen. Testa i ett privat fönster eller i en annan webbläsare.
Källor
- WordPress källkod 7.1.3 – is_ssl() i wp-includes/load.php
- WordPress källkod 7.1.3 – wp_ssl_constants() i wp-includes/default-constants.php
- Cloudflare – ERR_TOO_MANY_REDIRECTS
- WordPress.org – Changing The Site URL
Hittar du ett fel? Hör av dig så rättar vi.