2010-07-01 4 views
0

Je travaille sur certaines règles de réécriture, et pour une raison quelconque une expression rationnelle que je ne m'attends pas à passer (et qui ne passe sur aucun de mes testeurs d'expression régulière) passe dans mod_rewrite.mod_rewrite regexp

L'URL en question est:

http://url.com/api/projects.json?division=aa 

Et la règle de réécriture est:

RewriteEngine On 
RewriteBase/
RewriteRule ^api\/([^.?#/%\s]+)\.([^#?\s]+)$ api.php?type=$1&format=$2 [NC,L] 

Parce que la seconde capture est immédiatement suivie de $ je vous attendez cette URL à l'échec en raison de la chaîne de requête, mais il semble accepter très bien et passer les deux paramètres à GET.

Des pensées?

Répondre

2

Note: chaîne de requête

Le modèle ne sera pas adapté contre la chaîne de requête. Au lieu de cela, vous devez utiliser un RewriteCond avec la variable % {QUERY_STRING}.

Snip du fond de the docs

+0

Cheers - donc je veux juste ajouter une condition de réécriture comme: RewriteCond% {QUERY_STRING}^$ Merci pycruft. – JustinB