有没有办法“取消设置”任意的 Apache 指令,比如逐字重复它,但Unset
在它前面加上或其他内容?
例如,假设在服务器配置级别我有:
ScriptAliasMatch "^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1"
对于其中一个VirtualHosts,我希望能够放置如下内容:
Unset ScriptAliasMatch "^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1"
如果我遗漏了针对该指令的特定方法,那么我也对此感兴趣(我能想到的最好的办法是通过 mod_rewrite 阻止对该模式的访问),但我特别感兴趣的是是否有办法取消设置,因为这对将来来说可能会很方便。
答案1
我认为,如果服务器范围的设置对于虚拟主机来说是不可接受的,那么最简单的解决方案就是将指令从服务器级别移到虚拟主机级别。
在每个虚拟主机中使用默认值Include
,并在偏离标准的虚拟主机中省略它。
新的<If>
(httpd 2.4)也可能是一个选择。