问题
Is there anyway to use the value set in a SetEnv
on the RewriteRule
statement?
Example:
SetEnv MY_SCRIPT myScript.php
rewriteEngine on
RewriteRule ^(.*)$ %{MY_SCRIPT} [L]
回答1:
According to http://httpd.apache.org/docs/2.0/env.html the SetEnv is called after the RewriteRule. Therefore it seems to be impossible to use any variable set via SetEnv in a RewriteRule- or RewriteCond-statement.
Using SetEnvIf on the other hand is called before the RewriteRule and therefore Variables set there can be used in a RewriteRule- or RewriteCond-statement.
So something like the following should work:
SetEnvIf SERVER_PROTOCOL "HTTP.*" MY_SCRIPT=myScript.php
rewriteEngine on
RewriteRule ^(.*)$ %{ENV:MY_SCRIPT} [L]
回答2:
Use %{ENV:MY_SCRIPT}
instead of %{MY_SCRIPT}
.
来源:https://stackoverflow.com/questions/1785623/mod-rewrite-rule-and-setenv