mod_rewrite规则和setenv

12
有没有办法在 RewriteRule 语句中使用在 SetEnv 中设置的值?
例如:
SetEnv MY_SCRIPT myScript.php

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

14
根据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]

1

使用 %{ENV:MY_SCRIPT} 替代 %{MY_SCRIPT}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接