Apache SetEnvIf麻烦

时间:2009-09-02 17:16:04

标签: apache environment-variables setenv

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

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

据我所知,这应该是正常的。但是,当我从example.com访问时,似乎没有定义“myvar”。我知道我启用了mod_setenvif.c(我已经使用&lt; IfModule&gt;块进行了验证)。

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

1 个答案:

答案 0 :(得分:6)

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

apache2 -D MYVAR

然后是一节

<IfDefine MYVAR>
    ...
</IfDefine>

会被执行。

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