限制Apache2中的HTTP方法

我在Ubuntu 10.04上有一个默认的Apache安装。

我使用下面的Nmap扫描来确定可用的Apache方法:

nmap -p80 --script=http-methods 192.168.1.66 

结果是:

 http-methods: GET HEAD POST OPTIONS 

我试图消除HEAD方法。 所以在/etc/apache2/apache.conf添加了以下内容:

 <Directory "/var/www/*"> <LimitExcept GET POST OPTIONS> Deny from all </LimitExcept> ... </Directory> 

然后我重新启动了Web服务器。 然而,nmap扫描仍然打印相同的结果。

有谁知道我在这里错过了什么?

<Limit>的文档明确指出:

 If GET is used it will also restrict HEAD requests 

这非常强烈地暗示出于<Limit><LimitExcept>的目的, GETHEAD被视为相同。 适用于GET限制将适用于HEAD ,因此如果GET不受限制,则HEAD也将不受限制。

此外, HTTP/1.1 RFC 2616明确指出(9.4节):

 The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. 

进一步明确GETHEAD之间的直接关系。

最后一条信息来澄清这一点,也从RFC 2616 ,(5.1.1):

 The methods GET and HEAD MUST be supported by all general-purpose servers. 

这些信息一起往往强烈暗示,你想完成的将不可能通过单独的configuration更改。