阿帕奇量子不确定性原理…如果指令是真的和假的

环境variables的值在bash中设置:

# export PRODUCTION=true # echo $PRODUCTION # true 

这里是我的虚拟主机文件的相关摘录:

 <If "-T osenv('PRODUCTION')"> Define dogs dogs </If> <Else> Define cats cats </Else> 

apache2ctl -S产生:

 Define: dogs=dogs Define: cats=cats 

因此,我们有一个量子条件是真的和假的 。 这里发生了什么事情,如何使其正常运行?

我在这些引用中找不到任何内容,表明我做错了什么。

  • apache if-else
  • Apache的庇护所运营商

当你运行apachectl -S它只是parsing代码以确保它在语法上是正确的,而不是实际执行代码。 输出只是告诉你可能发生的事情不是评估if / else块的结果。

你可以通过在if和else块中实际上有一个活动的Apache指令来validation。 例如:

 <If "-T osenv('PRODUCTION')"> Define dogs dogs Header set MyHeader1 "PRODUCTION defined %D %t" </If> <Else> Define cats cats Header set MyHeader2 "PRODUCTION undefined %D %t" </Else> 

而且,如果Apache定义了PRODCUTION或者没有定义PRODCUTION,那么您将在服务器的响应中看到不同的头文件。 %D%t在那里添加一些随每个请求而改变的东西,这样你就不会觉得你得到了某种caching的东西。

请注意,为了这个工作,你必须做一个句号,并在设置/取消设置PRODUCTION环境variables之间开始,重启将不起作用。