afbeelding van florisla

RewriteRule met query string

Nog een laatste tip om een productieve Drupal dag af te sluiten...

In een eerder forum topic had ik het al over mijn plan om bestaande URLs te herschrijven naar drupal node paden. Uiteraard via een nieuwe RewriteRule in .htaccess.

Nu blijkt het rewriten van URLs met een query string een beetje tricky te zijn, want je kan het ?naam=waarde gedeelte van de URL niet parsen met de gewone regular expression. Daarvoor moet je een RewriteCond toevoegen voor QUERY_STRING met een aparte regex voor het query gedeelte.

Regex groups uit de gewone regex refereer je met $, maar die uit de RewriteCond voeg je in met een %procent.


RewriteCond %{QUERY_STRING} ^itemid=(\d{1,5})$
RewriteRule ^index.php$ /node/%1? [last,redirect=permanent]

Bovenstaande RewriteRule moet hoger moet staan dan de default rule van Drupal...

Het vraagteken aan het eind van het nieuwe pad duidt aan dat de bestaande query parameter niet moet overgenomen worden. Die zit nu immer gecodeerd in het node pad.

De optie redirect kun je naar keus ook weglaten...

Auteur: 
florisla
Bookmark and Share

Drupal is een geregistreerd merk van Dries Buytaert. | Powered by Pantheon.

Drupal.be/Drupal.nl is de website van de Nederlandstalige Drupalgemeenschap.