是否仍然使用SetEnv
声明中RewriteRule
设置的值?
示例:
SetEnv MY_SCRIPT myScript.php
rewriteEngine on
RewriteRule ^(.*)$ %{MY_SCRIPT} [L]
答案 0 :(得分:9)
根据http://httpd.apache.org/docs/2.0/env.html,SetEnv在重写规则后被称为 。因此,似乎无法在RewriteRule-或RewriteCond语句中使用通过SetEnv设置的任何变量。
另一方面,使用SetEnvIf称为之前 RewriteRule,因此设置的变量可以在RewriteRule-或RewriteCond语句中使用。
所以类似下面的内容应该有效:
SetEnvIf SERVER_PROTOCOL "HTTP.*" MY_SCRIPT=myScript.php
rewriteEngine on
RewriteRule ^(.*)$ %{ENV:MY_SCRIPT} [L]
答案 1 :(得分:1)
使用%{ENV:MY_SCRIPT}
代替%{MY_SCRIPT}
。