在Apache中禁用HTTP方法

我如何禁用某些HTTP方法(例如PUT或TRACE)并让Apache发送HTTP“405方法不允许”。

我已经尝试了Limit和LimitExcept指令,但他们似乎发送“403 Forbidden”。

我有几个虚拟主机 – 这应该是在所有主机上,httpd.conf中。

看起来,定义错误代码比应该更难一些。

但是,一个解决方法可能会使用mod_rewrite 。 因为至less有99%的不可思议的Apache问题,mod_rewrite可以提供它的巫术舞蹈并且解决你的问题,

如果一切都失败了,请尝试类似的方法

 RewriteEngine On RewriteCond %{REQUEST_METHOD} !^GET [AND] RewriteCond %{REQUEST_METHOD} !^POST RewriteRule .* /yourerrordocuments/405.html [R=405,L] 

我知道这可能不是最好的解决scheme,但它应该工作…

跟踪方法可以添加这个

 TraceEnable off 

在你的主要configuration文件中

要启用重写引擎,请添加以下内容:

  RewriteEngine On 

请注意,默认情况下,重写configuration不会在虚拟服务器之间inheritance。 将RewriteEngine添加到每个虚拟主机。

 RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS) RewriteRule .* - [F]