2009-11-23 8 views
7

SetEnvに設定された値をRewriteRule文で使用することはありますか?mod_rewriteルールとsetenv

例:

SetEnv MY_SCRIPT myScript.php 

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

答えて

7

http://httpd.apache.org/docs/2.0/env.htmlによると、のRewriteRuleの後にSetEnvはと呼ばれます。したがって、RewriteRule-またはRewriteCond-ステートメントでSetEnvで変数セットを使用することは不可能です。

の前にSetEnvIfを使用するのはです。したがって、RewriteRuleとRewriteRond-またはRewriteCond-ステートメントに変数セットを使用することができます。

だから、次のようなものが動作するはずです:

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

利用%{ENV:MY_SCRIPT}の代わり%{MY_SCRIPT}

関連する問題