在Apache中禁用HTTP方法

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

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

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

  • mod_evasive与Apache / 2.2.16 dosn't工作时,我使用curl
  • PHP内存在一段时间后自动释放
  • 在前面的服务器崩溃,Apache2访问日志显示控制字符和乱七八糟的gobs,没有在错误日志
  • 从HTTP强制HTTPS(Apache)
  • 我怎样才能在Apache mod_status输出中显示完整的URL?
  • 缺lessapache2 ./configure的APR
  • 3 Solutions collect form web for “在Apache中禁用HTTP方法”

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

    但是,一个解决方法可能会使用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] 
    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.