4

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

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

据我所知,这应该可以正常工作。但是,当我从example.com. 我知道我已mod_setenvif.c启用(我已使用 <IfModule> 块进行了验证)。

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

4

1 回答 1

7

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

apache2 -D MYVAR

然后一段

<IfDefine MYVAR>
    ...
</IfDefine>

会被执行。

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

于 2009-09-02T17:28:03.350 回答