.htaccess redirect voor URL met vraagteken (?)

Wanneer een pagina van een website verplaatst wordt en daardoor via een andere URL te benaderen is, moet de oude URL doorverwijzen naar de nieuwe URL om er voor te zorgen dat bezoekers deze pagina nog steeds kunnen vinden. Ook voor de zoekmachines is het goed om de URL door te verwijzen, want wanneer dit met een 301 verwijzing wordt gedaan, wordt de waarde die was toegekend aan de oude pagina overgegeven aan de nieuwe pagina.

Een redirect van een URL kan geregeld worden met een .htaccess (op linux servers). Een voorbeeld van een .htaccess die paginaA.html doorverwijst naar paginaB.html is:

RewriteEngine On
RewriteRule ^paginaA\.html$ /paginaB\.html [L,R=301]

Echter kan het ook voorkomen dat de URL die je wilt doorverwijzen iets complexer is en een variabele bevat. Een voorbeeld van zo’n URL is: paginaA.html?code=15

Het probleem hierbij wordt dat het gebruik van een vraagteken in een .htaccess bestand zorgt dat het gelezen wordt als een Query String. Dit is zelfs niet te voorkomen door een back-slash ( \ ). Daarom moeten we in dit geval een andere oplossing bedenken.

De juiste doorverwijzing met een .htaccess is in dit geval als volgt:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^code=15$
RewriteRule ^paginaA\.html$ /paginaB\.html?code=15 [L,R=301]

Je bekijkt dus eerst of de Query String (hetgeen achter het vraagteken) gelijk is aan ‘code=15’. Als dat het geval is leid je elke URL die begint met paginaA.html om naar paginaB.html?code=15

Dit artikel delen:


Tags: , , , , , , , , , , , ,