Hoppa till innehållet
WP Magazine

Felsökning

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.

Testad med WordPress 7.1.3Publicerad

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:

  1. WordPress-adresserna stämmer inte med hur sajten faktiskt nås (http/https, med eller utan www).
  2. HTTPS hanteras av en proxy eller CDN, till exempel Cloudflare, och WordPress tror att besöket kom via http.
  3. Två omdirigeringar motarbetar varandra, till exempel en regel i .htaccess och 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:

Terminal window
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. */:

wp-config.php
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';:

wp-config.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:

  • .htaccess innehåller en regel som tvingar www, medan WordPress-adressen saknar www.
  • 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:

  1. Ö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.
  2. 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.
  3. Ä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

Hittar du ett fel? Hör av dig så rättar vi.

Mer om felsökning

  • Byta lösenord i WordPress

    Så byter du lösenord i WordPress, återställer det via e-post och tar dig in även när mejlet aldrig kommer – med phpMyAdmin, WP-CLI eller FTP.

    Uppdaterad · WP 7.1.3

  • Kritiskt fel i WordPress

    Visar din WordPress-sajt ”Det har uppstått ett kritiskt fel på webbplatsen”? Så hittar du orsaken och får igång sajten igen – med eller utan räddningsläget.

    Uppdaterad · WP 7.1.3