Skrevet under: Apache
Jeg har i lang tid brugt mod_rewrite i apache til at lave pænere URLs, jeg rendte dog idag ind i et mindre problem, jeg skal have tilføjet den streng der bliver lavet i en GET til en URL.
Tricket var at det skal bruges i en webservice der sætter nogle parametre på en indtastet URL, så hvis jeg opgav URLen:
http://remotesite.com?id=1234
Ville den bare forsøge at hente URLen:
http://remotesite.com?id=1234?foo=bar&baz=foo
Hvilket jo er forkert, da den rigtige URL skal se således ud:
http://remotesite.com?id=1234&foo=bar&baz=foo
Derfor brugte jeg denne gang mod_rewrite til noget fornuftigt, ved at bruge RewriteRule flaget QSA (qsappend), tilføjer den samtidig forespørgsels strengen til den nye URL den laver:
RewriteEngine On
RewriteRule ^([0-9]+)/?$ index.php?id=$1 [L,QSA]
Dvs. at nu kunne jeg indtaste URLen:
http://remotesite.com/1234/
Og den vil hente:
http://remotesite.com/index.php?id=1234&foo=bar&baz=foo