2010-12-10 26 views
0

J'ai un problème de mod_rewrite. Ou plus exactement, j'ai un problème avec ISAPI_Rewrite, qui est un clone mod_rewrite pour IIS. Plus précisément, ISAPI_Rewrite v3 s'exécute sur IIS 7. Il vise à se comporter de manière identique à mod_rewrite, donc j'espère que mon problème s'applique également à mod_rewrite.Nettoyer les URL dans IIS avec mod_rewrite

Mon problème se résume à ceci: J'ai un script bar.php auquel je veux accéder via l'URL foo. Je réécris d'abord foo à bar. Ensuite, essayez de convertir l'URL propre en un vrai nom de fichier.

RewriteRule ^foo$ bar 

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule .* $0.php 

Le RewriteCond est d'échouer parce que ${REQUEST_FILENAME} dit encore "foo" plutôt que "bar". Il n'est pas mis à jour après la première réécriture.

Comment est-ce que je peux faire ce travail? Je pourrais résoudre ce problème en écrivant simplement RewriteRule ^foo$ bar.php. Mais je préférerais fortement garder les règles de remappage d'URL séparées des règles d'extension de fichier.

Répondre

0

réponse provisoire ...

RewriteCond %{DOCUMENT_ROOT}/$0.php -f 

En utilisant $0 j'avoir accès à la dernière URL réécrite, ce qui me rend heureux. Mais je dois ajouter %{DOCUMENT_ROOT} pour transformer cela en un nom de fichier, ce qui me rend triste. Un peu d'un kludge.

+0

Eh bien, c'est ce que j'utilise à moins de meilleures réponses! –