Apache SetEnvIf麻烦

我有我的.htaccess文件中的以下内容:

 SetEnvIf Host "^example\.com$" myvar=1 <IfDefine myvar> RewriteRule ^(.*)$ index2.php?q=$1 [L,QSA] </IfDefine> 

据我所知,这应该是正常工作。 但是,当我访问example.com时,“myvar”似乎没有被定义。 我知道我有mod_setenvif.c启用(我已经validation与一个<IfModule>块)。

任何想法为什么“myvar”没有被定义?

这实际上是一个serverFault问题,但无论如何: IfDefine不测试环境变量,它测试启动时传递给Apache的配置选项。 例如,如果你跑了

 apache2 -D MYVAR 

然后一节

 <IfDefine MYVAR> ... </IfDefine> 

会被执行。

我不确定是否有任何Apache配置指令作为环境变量的条件,就像你正在寻找的那样。