URL propres dans IIS avec mod_rewrite
-
25-09-2019 - |
Question
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 fonctionnant sur IIS 7. Il vise à se comporter de manière identique à mod_rewrite, donc j'espère que mon problème concerne mod_rewrite ainsi.
Mon problème se résume à ceci: J'ai un bar.php
de script que je veux accéder via le foo
URL. J'ai d'abord réécris foo
à bar
. Ensuite, essayez de convertir l'URL propre à un nom de fichier.
RewriteRule ^foo$ bar
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .* $0.php
Le RewriteCond
échoue parce que ${REQUEST_FILENAME}
dit encore « foo » plutôt que « bar ». Il est pas mis à jour après la première réécriture.
Comment puis-je faire ce travail? Je pouvais résoudre ce problème en écrivant RewriteRule ^foo$ bar.php
. Mais je préfère garder fortement l'URL des règles remappant séparées des règles d'extension de fichier.
La solution
Tentative de réponse ...
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}
à transformer en un nom de fichier, ce qui me rend triste. Bit d'une bidouille.