Att ha med datum för inlägget i URL:en är opraktiskt av många skäl. Den främsta orsaken till att jag tog bort det från Wedholm.net är att jag vill korta ner mina URL:er för att inte riskera att sökord i URL:en klipps bort efter X:e tecknet.
Att göra om URL-strukturten är i sig inte särskilt svårt. Det är bara att gå in i WP-admin.Efter lite letande hittade jag en lösning på detta. Här kommer den från början till slut.
- Gå in i WP-admin och klicka dig fram till Inställningar och Permalänkar.
- Välj Anpassad struktur och fyll i /%postname%/
- Därefter letar du upp filen .htaccess, eller skapar den om den inte finns.
I .htaccess lägger du till följande:
RewriteEngine On RewriteBase / RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /$4 [R=301,NC,L]
Den styr om URL:er liknande denna:
https://www.wedholm.net/2011/04/25/seo-undvik-att-lanka-ut-fran-startsidan/
till följande:
https://www.wedholm.net/seo-undvik-att-lanka-ut-fran-startsidan/
Om din .htaccess-fil redan innehåller s.k. ”rewrite rules” kan du lägga in den sista raden (i koden ovan) i den befintliga koden på följande sätt (rad 5):
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /$4 [R=301,NC,L] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Ta det lite lugnt precis efter att du ändrat detta. Jag märkte att det tog någon minut innan det slog igenom på bloggen.
Bra tips, kör själv med postname oftast. Det kan dock vara bra att tänka på att ju större en sajt är desto viktigare blir det att ha bra permalänkar. Tydligen blir databasen en aning segare i wp om man bara kör postname, då kan månad tex vara bra för optimering. Men det gäller nog framförallt om man har mängder innehåll.
Värt att notera är också att WordPress ska hantera dessa rewrites själv sedan version 2.8 eller nåt. Det finns dessutom gott om plugins som fixar det åt dig.
Ett problem är att det inte fungerar när du kör WordPress på IIS (Windows webbserver), eftersom WordPress kollar att @isIIS är false innan den lagar problemen. Flera av pluginen jag har testat gör på precis samma sätt.
Detta eftersom vissa versioner av IIS tydligen ska ha problem att hantera koden. Däremot har jag inte haft några problem, och därför löst det genom att sätta @isIIS = true;