mod_rewrite规则和setenv

H. *_*nce 10 mod-rewrite setenv

反正是有使用在设定值SetEnvRewriteRule发言?

例:

SetEnv MY_SCRIPT myScript.php

rewriteEngine on
RewriteRule ^(.*)$  %{MY_SCRIPT} [L]
Run Code Online (Sandbox Code Playgroud)

hei*_*eas 10

根据http://httpd.apache.org/docs/2.0/env.html,在RewriteRule 之后调用SetEnv.因此,似乎无法在RewriteRule-或RewriteCond语句中使用通过SetEnv设置的任何变量.

另一方面,使用SetEnvIf在RewriteRule 之前调用,因此在那里设置的变量可以在RewriteRule-或RewriteCond语句中使用.

所以类似下面这样的东西应该有效:

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