为什么apache config Define指令在If、ElseIf和Else中不能正确工作?

为什么apache config Define指令在If、ElseIf和Else中不能正确工作?,apache,Apache,我正在使用Apache2.4.37 我很惊讶地发现,Define指令在指令内部并不正确。在这个示例中,section将是“section2”,即即使-d等于“/www/section1/%{HTTP_HOST}/www”。始终从列表中触发最后一个Define指令 … <If "-d '/www/section1/%{HTTP_HOST}/www'"> Define sSection section1 </If> <If "-d '/www/section2/%

我正在使用Apache2.4.37

我很惊讶地发现,Define指令在指令内部并不正确。在这个示例中,section将是“section2”,即即使-d等于“/www/section1/%{HTTP_HOST}/www”。始终从列表中触发最后一个Define指令

…
<If "-d '/www/section1/%{HTTP_HOST}/www'">
   Define sSection section1
</If>
<If "-d '/www/section2/%{HTTP_HOST}/www'">
   Define sSection section2
</If>

UseCanonicalName Off
VirtualDocumentRoot /www/${sSection}/%0/www
…
有什么不对劲


除了Define指令外,我们如何在Apache配置中定义变量?

可能是偶然发现两个目录都存在?我的意思是,如果两个
都是真的,那么最后一个将覆盖其他的。当然不是。为了解决这个问题,我花了两天时间。一切都经过测试。最后的希望是社区。也许是偶然的两个目录都存在?我的意思是,如果两个
都是真的,那么最后一个将覆盖其他的。当然不是。为了解决这个问题,我花了两天时间。一切都经过测试。最后的希望是社区。
…
Define sSection section1
Define sSection section2

UseCanonicalName Off
VirtualDocumentRoot /www/${sSection}/%0/www
…