特定のHTTPメソッド(PUTやTRACEなど)を無効にし、ApacheにHTTP「405 Method not allowed」を送信させるにはどうすればよいですか。
LimitおよびLimitExceptディレクティブを試しましたが、「403 Forbidden」を送信するようです。
私はいくつかの仮想ホストを持っています-これはメインのhttpd.confですべての仮想ホストにあるはずです。
特定のHTTPメソッド(PUTやTRACEなど)を無効にし、ApacheにHTTP「405 Method not allowed」を送信させるにはどうすればよいですか。
LimitおよびLimitExceptディレクティブを試しましたが、「403 Forbidden」を送信するようです。
私はいくつかの仮想ホストを持っています-これはメインのhttpd.confですべての仮想ホストにあるはずです。
回答:
エラーコードを定義するのは、実際よりも少し難しいようです。
ただし、1つの回避策はMIGHTを使用することmod_rewriteです。mod_rewriteが見た目が不可能なApacheの問題の少なくとも99%でブードゥーダンスを提供し、問題を解決できるという事実により、その1つを頭から取り出しました。
他のすべてが失敗した場合、次のようなものを試してください
RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^GET [AND]
RewriteCond %{REQUEST_METHOD} !^POST
RewriteRule .* /yourerrordocuments/405.html [R=405,L]
私はそれがおそらく最も良い解決策ではないことを知っていますが、それは一種の仕事でなければなりません...