2009-11-23 8 views
7

Y a-t-il un moyen d'utiliser la valeur définie dans un SetEnv dans l'instruction RewriteRule?Règle mod_rewrite et setenv

Exemple:

SetEnv MY_SCRIPT myScript.php 

rewriteEngine on 
RewriteRule ^(.*)$ %{MY_SCRIPT} [L] 

Répondre

7

Selon http://httpd.apache.org/docs/2.0/env.html le SetEnv est appelé après la RewriteRule. Il semble donc impossible d'utiliser n'importe quel ensemble de variables via SetEnv dans une instruction RewriteRule- ou RewriteCond.

En utilisant SetEnvIf d'autre part est appelé avant le le RewriteRule et donc le jeu de variables peut être utilisé dans une instruction RewriteRule- ou RewriteCond.

donc quelque chose comme ce qui suit devrait fonctionner:

SetEnvIf SERVER_PROTOCOL "HTTP.*" MY_SCRIPT=myScript.php 
rewriteEngine on 
RewriteRule ^(.*)$ %{ENV:MY_SCRIPT} [L] 
1

Utilisation %{ENV:MY_SCRIPT} au lieu de %{MY_SCRIPT}.

Questions connexes