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...

Actuele inhoud

09 feb 2012

08 feb 2012

07 feb 2012

06 feb 2012

05 feb 2012