Introduksjon til Apache mod_rewrite
.htaccess-filen er et av de kraftigste verktøyene i en WordPress-administrators arsenal. Denne konfigurasjonsfilen lar deg overstyre serverinnstillinger på katalognivå, noe som gir deg granulær kontroll over URL-viderekoblinger, tilgangsbegrensninger og ytelsesoptimaliseringer.
Hva er mod_rewrite?
mod_rewrite er en Apache-modul som gir en regelbasert omskrivingsmotor for å omskrive forespurte URL-er i farten. Det er motoren bak WordPress sine fine permalenker og er avgjørende for moderne SEO-vennlige URL-strukturer.
Viktige fordeler:
- SEO-bevaring: Omdiriger gamle URL-er til nye uten å miste søkeplasseringer
- Brukeropplevelse: Sørg for at besøkende alltid kommer til riktig innhold
- Sikkerhet: Tving HTTPS og blokker ondsinnede forespørsler
- Ytelse: Implementer cache-overskrifter og komprimering
Når bør du bruke 301 vs 302-viderekoblinger?
Å forstå HTTP-statuskoder er avgjørende for riktig SEO-implementering:
| Type videresending | Bruksområde | SEO-effekt |
|---|---|---|
| 301 Permanent | Innhold flyttet permanent, domeneendringer, HTTPS-migrering | Overfører 90-99% lenkekapital, søkemotorer oppdaterer indeksen |
| 302 Funnet | Midlertidig vedlikehold, A/B-testing, kortsiktige innholdsflyttinger | Ingen lenkekapital overføres, opprinnelig URL forblir indeksert |
| 307 Midlertidig | Strikt HTTP/1.1 midlertidig videresending, bevaring av POST-data | Samme som 302, men bevarer HTTP-metode |
| 308 Permanent | Strikt HTTP/1.1 permanent videresending, bevaring av POST-data | Samme som 301, men bevarer HTTP-metode |
Gylden regel: Hvis endringen er permanent, bruk alltid 301. Å bruke 302 for permanente flyttinger kan påvirke SEO-rangeringene dine negativt.
Vanlige viderekoblingsscenarier
1. Enkeltside-viderekoblinger
Den enkleste formen for videresending flytter én spesifikk URL til en annen:
# Videresend en enkelt side (enkel syntaks)
Redirect 301 /gammel-side.html https://www.domene.com/ny-side.html
# Alternativ med RewriteRule
RewriteEngine on
RewriteRule ^gammel-side\.html$ /ny-side.html [R=301,L]
2. Videresending av hele nettstedet
Å flytte hele nettstedet til et nytt domene krever nøye håndtering:
# Viderekobl hele nettstedet til nytt domene
Redirect 301 / https://www.nyttdomene.com/
# Bevar full URL-struktur
RewriteEngine on
RewriteBase /
RewriteRule (.*) https://www.nyttdomene.com/$1 [R=301,L]
3. Tvinge HTTPS (SSL)
Avgjørende for sikkerhet og SEO:
# Tving HTTPS - Metode 1 (enkel)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Tving HTTPS - Metode 2 (med www-håndtering)
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.domene.com/$1 [L,R=301]
4. Tving www eller ikke-www
Konsistens i URL-struktur betyr noe for SEO:
# Tving www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domene.com [NC]
RewriteRule ^(.*)$ https://www.domene.com/$1 [L,R=301]
# Tving ikke-www (nakent domene)
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domene\.com [NC]
RewriteRule ^(.*)$ https://domene.com/$1 [L,R=301]
Avanserte omskrivingsregler
Spørringsstreng-viderekoblinger
Håndtering av URL-er med parametere krever spesiell oppmerksomhet:
# Viderekobl spesifikk spørringsparameter
RewriteEngine on
RewriteCond %{QUERY_STRING} id=1
RewriteRule ^index.php$ /sti-til-ny-plassering/? [R=301,L]
# Fjern spørringsstrenger helt
RewriteEngine On
RewriteCond %{QUERY_STRING} .
RewriteRule ^$ /? [R=301,L]
Mønsternmatching med Regex
Regulære uttrykk gir kraftig mønsternmatching:
# Viderekobl datobaserte URL-er
RewriteEngine On
RewriteRule ^blogg/([0-9]{4})/([0-9]{2})/(.+)$ /nyheter/$1/$2/$3 [R=301,L]
# Videresend med jokertegn
RewriteEngine On
RewriteRule ^produkter/(.*)$ /butikk/$1 [R=301,L]
Testing av viderekoblinger trygt
Før du går live
- Bruk 302 Midlertidig først: Test med 302-viderekoblinger før du gjør dem permanente
- Sjekk viderekoblingsrekker: Sørg for at du ikke lager viderekoblingsløkker
- Test flere scenarier: Sjekk med og uten www, HTTP og HTTPS
- Valider med verktøy: Bruk nettbaserte viderekoblingssjekker
Testmetoder
# Bruk curl for å sjekke overskrifter
curl -I http://dittdomene.com/gammel-side
# Følg viderekoblinger med curl
curl -L http://dittdomene.com/gammel-side
# Sjekk spesifikke statuskoder
curl -I -L http://dittdomene.com/gammel-side 2>&1 | grep HTTP
Feilsøking av viderekoblingsløkker
Vanlige årsaker
- Sirkulære referanser: Regel A videresender til B, Regel B videresender tilbake til A
- Protokollmisforhold: HTTP-regel i konflikt med HTTPS-tvinging
- WWW-konflikter: www og ikke-www-regler som kjemper mot hverandre
- WordPress-konflikter: Plugin-viderekoblinger i konflikt med .htaccess
Løsninger
# Forhindre løkker ved å sjekke om allerede videresendt
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]
# Spesifikk protokollhåndtering for å unngå løkker
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Ytelsespåvirkning av .htaccess-regler
Optimalisering av beste praksis
- Rekkefølge betyr noe: Plasser de hyppigst matchede reglene først
- Bruk spesifikke mønstre: Mer spesifikke mønstre er raskere
- Begrens Regex-kompleksitet: Unngå grådige kvantifisering der det er mulig
- Vurder servernivåkonfigurasjon: For nettsteder med høy trafikk, bruk httpd.conf i stedet
# Eksempel på optimalisert rekkefølge
RewriteEngine On
# Hyppigste viderekoblinger først
RewriteRule ^wp-admin$ /wp-admin/ [R=301,L]
# Deretter spesifikke mønstre
RewriteRule ^gammelt-produkt/(.*)$ /butikk/$1 [R=301,L]
# Generiske mønstre sist
RewriteRule ^blogg/(.*)$ /nyheter/$1 [R=301,L]
WordPress-spesifikke hensyn
Integrering med WordPress omskrivingsregler
WordPress bruker sine egne omskrivingsregler i .htaccess. Plasser alltid egendefinerte regler før WordPress-blokken:
# BEGIN Egendefinerte viderekoblinger
RewriteEngine On
# Dine egendefinerte regler her
# END Egendefinerte viderekoblinger
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Vanlige WordPress-viderekoblingsscenarier
# Viderekobl vedleggssider til overordnet innlegg
RewriteEngine On
RewriteRule ^vedlegg/(.*)$ / [R=301,L]
# Viderekobl forfatterarkiver til hjemmeside
RewriteEngine On
RewriteRule ^forfatter/(.*)$ / [R=301,L]
Sikkerhetshensyn
Beskytte sensitive filer
# Blokker tilgang til sensitive WordPress-filer
<FilesMatch "^\.">
Order allow,deny
Deny from all
</FilesMatch>
# Beskytt wp-config.php
<Files wp-config.php>
order allow,deny
deny from all
</Files>
Komplett referanse: viderekoblingstyper
Enkel viderekoblingssyntaks
# Grunnleggende 301-videresending
Redirect 301 /gammel /ny
# 302 midlertidig videresending
Redirect 302 /vedlikehold /midlertidig-side
# Videresend med full URL
Redirect 301 /side http://eksempel.com/ny-side
RewriteRule-syntaks
# Grunnleggende struktur
RewriteRule Mønster Erstatning [Flagg]
# Vanlige flagg:
# [R=301] - Permanent videresending
# [R=302] - Midlertidig videresending
# [L] - Siste regel (stopp behandling)
# [NC] - Ikke mellomrom (uten hensyn til store/små bokstaver)
# [QSA] - Legg til spørringsstreng
# [NE] - Ingen unnslipping
Oppsummeringssjekkliste
Før du implementerer viderekoblinger:
- Test viderekoblinger med 302 før du gjør dem til 301
- Bekreft at det ikke finnes viderekoblingsløkker
- Sjekk mobil- og desktopatferd
- Test med både www og ikke-www URL-er
- Bekreft HTTPS-tvinging hvis aktuelt
- Overvåk Google Search Console for gjennomsøkingsfeil
- Oppdater interne lenker til å peke til nye URL-er
- Lag en sikkerhetskopi av .htaccess-filen din
Husk: En godt planlagt viderekoblingsstrategi bevarer SEO-rangeringene dine og sikrer en sømløs brukeropplevelse under nettstedsmigreringer eller omstrukturering.
WordPress-plugin-alternativer
For ikke-tekniske brukere eller kompleks viderekoblingsadministrasjon:
Redirection
- Gratis, mye brukt
- Støtter regex-mønstre
- 404-logging
- Import/eksport-funksjonalitet
Yoast SEO Premium
- Innebygd viderekobling-administrator
- Automatisk 404-overvåking
- Sømløs WordPress-integrasjon
Rank Math SEO
- Omfattende SEO-pakke
- 301/302/307-viderekoblinger
- 404-overvåking
Utforsk vår WordPress-hastighetsoptimalisering for å ta prosjektet ditt videre.

