我如何禁用某些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]