我尝试 Apache 2.4 配置:
Listen 443
#if SECOND_HOST_PORT is defined and is not 443 listen on it
<IfDefine !SECOND_HOST_PORT>
Define SECOND_HOST_PORT 443
</IfDefine>
<If "'${SECOND_HOST_PORT}' != '443'">
Listen ${SECOND_HOST_PORT}
</If>
但我明白:
这里不允许收听
在倒数第二行
我究竟做错了什么 ?
答案1
Listen
您在不允许的地方使用。
根据文档Listen
唯一允许的背景是server config
。
根据文档context
这意味着它不允许出现在<VirtualHost>
指令、<Directory>
指令或 .htaccess 文件中。
此外,上下文的描述<Directory>
表明<Location>
,、、和指令<Files>
的处理方式与 类似。<If>
<Proxy>
<Directory>
因此您不能在 里面使用它<If>
。
它在<IfDefine>
指令内部起作用。
Define SECOND_HOST_PORT 4711
<IfDefine SECOND_HOST_PORT>
Listen ${SECOND_HOST_PORT}
</IfDefine>