Los métodos HTTP bloqueados no devuelven la respuesta HTTP 405
¿Cómo configuro (idealmente) Apache (o alternativamente) PHP para responder específicamente con un HTTP 405 cuando el método de solicitud no es GET
o POST
?
Mi .htaccess
intento de Apache bloquea las solicitudes, excepto que devuelve la respuesta HTTP 403 incorrecta :
<LimitExcept GET POST>
Order Allow,Deny
Deny from all
</LimitExcept>
En PHP, he usado lo siguiente al principio absoluto de dónde se manejan las solicitudes y simplemente se ignora por completo:
if (!in_array($_SERVER['REQUEST_METHOD'],array('GET','POST')))
{
header('Access-Control-Allow-Methods: GET, POST');
header('HTTP/1.1 405');
die();
}
Respuestas
Pandurang
Puede usar la siguiente regla de redireccionamiento para deshabilitar el método y devolver el código de error 405.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^(POST|GET)$
RewriteRule .* - [R=405]