2009-10-04 9 views
1

J'utilise la règle de réécriture suivante, mais je ne peux pas le faire fonctionner:Aide avec une règle de réécriture qui ne fonctionne pas

RewriteRule ^rates/([a-z]+)\.php$ /rates.php?c_user_action=view_type&vehicle_type=$1 [QSA,L,NC] 

L'URL J'utilise est http://www.example.com/rates/motorhomes.php

Pour l'instant, il suffit de passer à /rates.php sans chaîne de requête.

Le bizarre c'est si je change l'expression de réécriture à ^rates-([a-z]+)\.php$ et l'URL à http://www.example.com/rates-motorhomes.php puis cela fonctionne.

J'ai utilisé quelque chose de similaire sur d'autres sites/serveurs sans aucun problème, mais je n'arrive pas à comprendre ce que je fais de mal ici. Ce serveur exécute Apache 2.2.

Je sais mod_rewrite travaille, parce que les 2 règles suivantes fonctionnent:

RewriteRule ^blah([a-z]+)\.php$ /rates.php?test=$1 [L] 
RewriteRule ^(.*)\.[\d]+\.(css|js)$ $1.$2 [L] 

Répondre

3

Il est probablement MultiViews qui est à l'origine de ce comportement, la cartographie /rates/motorhomes.php-/rates.php/motorhomes.php avant de passer la demande jusqu'à mod_rewrite. Essayez de le désactiver:

Options -MultiViews 
+0

Merci! Tout ça et c'est tellement simple ..... grrr –

Questions connexes