我的.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”没有被定义的任何想法?
答案 0 :(得分:6)
这实际上是一个ServerFault问题,但无论如何:IfDefine
不测试环境变量,它测试在启动时传递给Apache的配置选项。例如,如果你跑了
apache2 -D MYVAR
然后是一节
<IfDefine MYVAR>
...
</IfDefine>
会被执行。
我不确定是否有任何Apache配置指令充当环境变量的条件,就像您正在寻找的那样。