Apache – 取消一个指令

有没有办法“解开”一个任意的Apache指令,比如通过逐字重复,而是用Unset或前面的东西来Unset呢?

举例来说,在服务器configuration级别上我有:

 ScriptAliasMatch "^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1" 

在虚拟主机之一,我希望能够像下面这样:

 Unset ScriptAliasMatch "^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1" 

如果这个指令有一个特定的方法,那么我对这个指令很感兴趣(我能想到的最好的方法就是通过mod_rewrite来阻止对这个模式的访问),但是我特别感兴趣的是,一个方法来解决,因为这可能是方便了解未来。

我认为最简单的解决scheme是将指令从服务器级别移动到虚拟主机级别,如果服务器范围的设置certificate对于虚拟主机是不可接受的。

在每个虚拟主机中使用默认的“ Include ,并在偏离规范的虚拟主机中省略。

新的<If> (httpd 2.4)也可能是一个选项。