.htaccess redirects af URL'er med parametre

Når man flytter indhold fra et gammelt website over i WordPress, så vil man typisk gerne viderestille URL'er fra den gamle hjemmeside til de tilsvarende URL'er i den nye WordPress installation. En simpel måde at gøre det på er via redirects i .htaccess filen.

Hvis man f.eks. gerne vil viderestille den gamle URL "http://domaene.dk/gammel" til "http://domaene.dk/ny", så kan man indsætte linjen

Redirect 301 /gammel http://domaene.dk/ny

i .htaccess. Men hvad nu hvis man flytter indhold fra et andet CMS der er sat op til at bruge URL'er på formen "http://domaene.dk/index.php?side=gammel"? I dette tilfælde vil ovenstående metode ikke fungere.

Vi fandt løsningen på wordpress.org. Disse to linjer indsættes øverst i .htaccess:

RewriteCond %{QUERY_STRING} ^side=gammel$
RewriteRule ^index\.php$ http://domaene.dk/ny/? [R=301,L]

Dvs. i den første linje skrives den del der kommer efter "index.php?" i den oprindelige URL mellem tegnene ^ og $, så

index.php?side=gammel

bliver til

^side=gammel$

I den anden linje skrives den nye URL så efter $-tegnet (glem ikke det afsluttene "?" tegn).

Tak til frogsplash for løsningen!