특정 HTTP 메소드 (예 : PUT 또는 TRACE)를 비활성화하고 Apache가 HTTP "405 Method not allowed"를 보내도록하려면 어떻게해야합니까?
Limit 및 LimitExcept 지시문을 시도했지만 "403 Forbidden"을 보내는 것 같습니다.
몇 개의 vhost가 있습니다. 이것은 주 httpd.conf에서 모든 호스트에 있어야합니다.
특정 HTTP 메소드 (예 : PUT 또는 TRACE)를 비활성화하고 Apache가 HTTP "405 Method not allowed"를 보내도록하려면 어떻게해야합니까?
Limit 및 LimitExcept 지시문을 시도했지만 "403 Forbidden"을 보내는 것 같습니다.
몇 개의 vhost가 있습니다. 이것은 주 httpd.conf에서 모든 호스트에 있어야합니다.
답변:
실제로 오류 코드를 정의하는 것이 생각보다 조금 어려워 보입니다.
그러나 한 가지 해결 방법은을 사용할 수 mod_rewrite있습니다. 불가능 해 보이는 아파치 문제의 적어도 99 %에서 mod_rewrite가 부두 춤을 제공하고 문제를 해결할 수 있다는 사실 때문에 내 머리에서 튀어 나왔습니다.
다른 모든 것이 실패하면
RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^GET [AND]
RewriteCond %{REQUEST_METHOD} !^POST
RewriteRule .* /yourerrordocuments/405.html [R=405,L]
그게 아마 가장 좋은 솔루션 주위 아니라는 것을 알고,하지만 해야 종류의 일 ...