Skip to content

Allt om WordPress, webbutveckling — och mer därtill

🔗 Hur du återställer WordPress permalänkar: 3 sätt att fixa ett 404-fel

🔗 Hur du återställer WordPress permalänkar: 3 sätt att fixa ett 404-fel

Du känner igen känslan: du öppnar en webbplats och möts av en vit skärm med det fruktade 404-felet. Startsidan laddas fint, adminpanelen fungerar, men själva inlägget eller sidan gör det inte. Du kollar URL:en, sparar om inlägget, rensar plugin-cachen, ingenting hjälper.

I nio fall av tio är grundorsaken trasiga omskrivningsregler i WordPress. Permalänkarna har slutat fungera, och CMS:et kan inte lista ut vilket innehåll som ska visas på den adressen. Goda nyheter: det här går att fixa på en minut, utan plugins eller kodändringar.

Här är tre metoder för att återställa permalänkar: från den enklaste (ett par klick i adminpanelen) till manuellt ingrepp i databasen via phpMyAdmin. Efter återställningen försvinner 404-felet, och URL-strukturen förblir intakt.

💡 Snabb översikt:

  • Gå till WordPress adminpanel och klicka på "Spara ändringar" på sidan för permalänkar.
  • Lägg till en kodrad i ditt temas functions.php, ladda om sajten och ta bort raden.
  • Rensa fältet rewrite_rules i tabellen wp_options via phpMyAdmin.
  • Verifiera resultatet: öppna den problematiska sidan och bekräfta att 404-felet är borta.

Vad permalänkar är och varför du behöver återställa dem

Permalänkar är läsbara URL:er för WordPress-sidor och inlägg. Istället för ?p=123 ser du /blog/how-to-reset-permalinks/. Omvandlingen hanteras av mekanismen för omskrivningsregler, en uppsättning regler som CMS:et lagrar i databasen och (med vissa inställningar) i filen .htaccess.

När du lägger till en ny inläggstyp, ändrar länkstrukturen eller efter en migrering av sajten kan det hända att omskrivningsreglerna inte uppdateras automatiskt. WordPress fortsätter att använda de gamla cachade reglerna, och en sida som fysiskt finns returnerar 404. En flush tvingar fram en ombyggnad av omskrivningsreglerna från grunden: den raderar lagrade regler och genererar aktuella.

Det här är inte att "radera" permalänkar; URL-strukturen som definierats i inställningarna förblir oförändrad. Endast cachen för interna routningsregler ändras. Operationen är helt säker: teman, plugins och innehåll påverkas inte.

Metod 1. Via WordPress adminpanel

Den snabbaste och säkraste metoden är återställning via adminpanelen. Använd den när adminpanelen är tillgänglig.

  • Logga in i WordPress-konsolen: your-site.com/wp-admin.
  • Navigera till Inställningar → Permalänkar.
  • Ändra ingenting i inställningarna, scrolla bara ner på sidan.
  • Klicka på den blå "Spara ändringar"-knappen.
Spara-knapp på sidan för permalänksinställningar i WordPress

WordPress kommer tyst att bygga om omskrivningsreglerna och uppdatera .htaccess (om den används). Inget bekräftelsemeddelande visas; öppna helt enkelt den problematiska sidan i en ny webbläsarflik och kontrollera om felet är borta.

Varför fungerar detta? När du klickar på "Spara ändringar" anropar CMS:et den interna funktionen flush_rewrite_rules(), samma som utvecklare använder i kod. Den enda skillnaden är hur den utlöses: här klickar du med musen istället för att skriva PHP.

Den här metoden löser problemet i de allra flesta fall. Om den inte hjälpte, gå vidare till metod 2.

Metod 2. Via temats functions.php

Om adminpanelen inte laddar eller "Spara"-knappen inte gav något resultat, återställ reglerna programmatiskt. Du behöver tillgång till sajtens filer: via FTP, webbhotellets filhanterare eller den inbyggda temaredigeraren.

Viktigt: flush_rewrite_rules() är en tung operation. Den bygger om hela URL-strukturen och saktar märkbart ner sajten om den anropas vid varje sidvisning. Därför lägger vi till funktionen en gång, laddar om sajten och tar omedelbart bort raden.

  • Öppna filen functions.php i det aktiva temat. Sökväg: /wp-content/themes/your-theme/functions.php.
  • Allra sist i filen, före avslutande ?> (om den finns), lägg till en rad:
1flush_rewrite_rules();
  • Spara filen.
  • Ladda om valfri sida på sajten i webbläsaren; funktionen körs vid första sidvisningen.
  • Öppna functions.php igen och ta bort raden du lade till. Det här steget är obligatoriskt.
Kod för att spola omskrivningsregler i WordPress temaredigerare

Funktionen kördes en gång, reglerna byggdes om, koden togs bort och sajten fungerar normalt utan extra belastning. Pluginutvecklare använder samma tillvägagångssätt: flush_rewrite_rules() krokas fast vid aktiveringskroken, inte vid varje förfrågan.

Ett alternativ för dig som föredrar att inte röra functions.php direkt: plugin-programmet Code Snippets. Skapa ett nytt snippet med samma kod, kör det en gång ("Kör"-knappen) och ta bort det. Resultatet är identiskt.

Metod 3. Via phpMyAdmin, direkt återställning av regler i databasen

Den djupaste nivån är att manuellt rensa omskrivningsreglerna direkt i tabellen wp_options. Använd detta när du varken har tillgång till adminpanelen eller temafilerna (till exempel en vit dödsskärm över hela sajten förutom databasen).

Se till att säkerhetskopiera databasen innan du gör några ändringar i phpMyAdmin. En enda felaktig åtgärd i SQL-redigeraren kan skada sajten oåterkalleligt.

  • Öppna phpMyAdmin via din webbhotellspanel (cPanel, ISPmanager, DirectAdmin) under avsnittet "Databaser".
  • I den vänstra kolumnen väljer du din WordPress-sajts databas.
  • Gå till fliken SQL i toppmenyn.
  • Klistra in frågan i textfältet och klicka på "Kör":
1SELECT * FROM wp_options WHERE option_name = 'rewrite_rules'
  • Resultatet visar en enda rad. Klicka på "Redigera" (pennikonen) bredvid den.
  • Leta reda på fältet option_value som innehåller en lång text med serialiserad data. Markera allt innehåll i fältet och radera det, spara sedan.
Redigera fältet rewrite_rules i phpMyAdmin

Vid nästa sidladdning kommer WordPress att upptäcka det tomma rewrite_rules-värdet, inse att det inte finns några regler och automatiskt återskapa dem. Du behöver inte köra något mer.

Observera: i vissa webbhotellskonfigurationer kan tabellprefixet skilja sig från wp_. Om ditt prefix är ett annat (till exempel wpxy_), ersätt wp_options med wpxy_options. Du kan kontrollera prefixet i filen wp-config.php, på raden $table_prefix.

Video: återställning av permalänkar i praktiken

Om du föredrar att titta framför att läsa, demonstrerar den här videon hela processen för att återställa permalänkar med den första metoden, från inloggning i adminpanelen till verifiering av resultatet:

⁉️🤔 Vanliga frågor

Kommer mina URL:er att försvinna efter återställning av permalänkar?

Nej. En flush ändrar inte länkstrukturen som definierats under "Inställningar → Permalänkar." Den bygger bara om cachen för interna routningsregler. Alla dina adresser som /blog/, /product/ och /category/ förblir exakt desamma. Undantaget är om du manuellt ändrade strukturen i inställningarna innan du sparade; i så fall kommer URL:erna att byggas om enligt den nya mallen.

Behöver jag installera ett plugin för att återställa permalänkar?

För en engångsoperation, definitivt inte. De tre metoderna ovan täcker alla scenarier utan extra programvara. Plugins som Rewrite Rules Inspector är bara meningsfulla om du regelbundet registrerar anpassade inläggstyper och taxonomier i kod och vill se reglernas status i realtid. För en enkel 404-fix är det overkill.

Återställning via adminpanelen hjälpte inte. Vad händer nu?

Kontrollera om filen .htaccess skrivs över av ett annat plugin (cachning, säkerhet, SEO). Inaktivera misstänkta plugins tillfälligt och upprepa återställningen. Om det inte hjälper, gå vidare till metod 2 (PHP); den anropar garanterat samma flush_rewrite_rules()-funktion och kringgår eventuella adminfilter.

Kan jag återställa regler via WP-CLI?

Ja, om WP-CLI är installerat på servern gör kommandot wp rewrite flush exakt samma sak från kommandoraden. Detta är den snabbaste metoden för utvecklare som arbetar via SSH. Det körs omedelbart, kräver ingen webbläsare och lämnar inga spår i temakoden.

Vad ska jag göra om 404-felet kvarstår efter återställningen?

Orsaken är inte permalänkarna. Kontrollera tre saker: (1) om sidan eller inlägget i sig har raderats fysiskt, (2) om sluggen krockar med annat innehåll eller en taxonomi, (3) om förfrågningar blockeras av en .htaccess-fil med felaktiga omdirigeringsregler. I det sistnämnda fallet, döp tillfälligt om .htaccess till .htaccess.bak, spara permalänkar via adminpanelen (WordPress skapar en ny .htaccess) och kontrollera igen.

Du har återställt länkarna, vad händer nu?

Du genomförde återställningen med en av de tre metoderna, och sidan öppnades. Utmärkt. Men om ett 404-fel dök upp en gång kan det komma tillbaka: efter en pluginuppdatering, ett temabyte eller redigeringar av anpassade inläggstyper. Bokmärk den här guiden; du kan nu den första metoden ("Spara"-knappen i adminpanelen) utantill och kan genomföra den på tio sekunder.

Och huvudregeln vid arbete med databasen: gör alltid en säkerhetskopia före varje ingrepp. phpMyAdmin förlåter inga misstag, men en databassäkerhetskopia väcker sajten till liv igen på ett par minuter.