我们可以使用 Apache 的IfModule
指令来测试特定模块的存在与否。Apache 还允许IfModule
使用嵌套指令来测试多个模块,换句话说,我们可以实现逻辑AND
。
是否也可以实现逻辑OR
?例如是否可以使用某些东西相似的更改为:
<IfModule mod_php5.c OR sapi_apache2.c>
# Some directives
</IfModule>
而不是这样:
<IfModule mod_php5.c>
# Some directives
</IfModule>
<IfModule sapi_apache2.c>
# Absolutely same directives with mod_php.c
</IfModule>
答案1
虽然这并不完美,但您可以将所需的指令放入单独的文件中,然后将Include
其放在相关位置。我不认为有办法在单个IfModule
语句中执行逻辑或。
答案2
这就是我想出的:
<IfModule mod_php5.c>
# Some directives
</IfModule>
<IfModule sapi_apache2.c>
<IfModule !mod_php5.c>
# Absolutely same directives with mod_php.c
</IfModule>
</IfModule>
答案3
<IfModule>
部分可以嵌套,可用于实现简单的多模块测试。
http://httpd.apache.org/docs/2.4/mod/core.html#ifmodule
不确定什么时候可以买到。