Apache 阿帕奇·塞滕维夫麻烦
我的Apache 阿帕奇·塞滕维夫麻烦,apache,environment-variables,setenv,Apache,Environment Variables,Setenv,我的.htaccess文件中有以下内容: SetEnvIf Host "^example\.com$" myvar=1 <IfDefine myvar> RewriteRule ^(.*)$ index2.php?q=$1 [L,QSA] </IfDefine> setenif主机“^example\.com$”myvar=1 重写规则^(.*)$index2.php?q=$1[L,QSA] 据我所知,这应该能正常工作。但是,当我从example.com访问时,“
.htaccess
文件中有以下内容:
SetEnvIf Host "^example\.com$" myvar=1
<IfDefine myvar>
RewriteRule ^(.*)$ index2.php?q=$1 [L,QSA]
</IfDefine>
setenif主机“^example\.com$”myvar=1
重写规则^(.*)$index2.php?q=$1[L,QSA]
据我所知,这应该能正常工作。但是,当我从example.com
访问时,“myvar”似乎没有得到定义。我知道我已经启用了mod_setenif.c
(我已经用一个块进行了验证)
知道为什么没有定义“myvar”吗?这确实是一个服务器故障问题,但无论如何:
如果define
不测试环境变量,它会测试启动时传递给Apache的配置选项。例如,如果你跑步
apache2 -D MYVAR
然后是一节
<IfDefine MYVAR>
...
</IfDefine>
...
会被处死
我不确定是否有任何Apache配置指令作为环境变量的条件,就像您正在寻找的那样。那么有没有一种方法可以使用
setenif
测试变量集?您可以使用RewriteCond
创建一个取决于环境变量值的重写条件。。。除此之外,我不确定是否还有其他使用环境变量的指令。它们主要用于CGI脚本等。