Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 阿帕奇·塞滕维夫麻烦_Apache_Environment Variables_Setenv - Fatal编程技术网

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脚本等。