无论如何要使用语句中设置SetEnv
的值吗?RewriteRule
例子:
SetEnv MY_SCRIPT myScript.php
rewriteEngine on
RewriteRule ^(.*)$ %{MY_SCRIPT} [L]
无论如何要使用语句中设置SetEnv
的值吗?RewriteRule
例子:
SetEnv MY_SCRIPT myScript.php
rewriteEngine on
RewriteRule ^(.*)$ %{MY_SCRIPT} [L]
根据http://httpd.apache.org/docs/2.0/env.html,SetEnv在 RewriteRule之后被调用。因此,似乎不可能在 RewriteRule 或 RewriteCond 语句中使用通过 SetEnv 设置的任何变量。
另一方面,使用 SetEnvIf 在RewriteRule之前调用,因此在那里设置的变量可以在 RewriteRule 或 RewriteCond 语句中使用。
所以像下面这样的东西应该可以工作:
SetEnvIf SERVER_PROTOCOL "HTTP.*" MY_SCRIPT=myScript.php
rewriteEngine on
RewriteRule ^(.*)$ %{ENV:MY_SCRIPT} [L]
使用%{ENV:MY_SCRIPT}
而不是%{MY_SCRIPT}
.