Estoy intentando limitar los encabezados de solicitud de un host virtual a solo POST
y . Lo que he hecho hasta ahora es crear un para mi host virtual y escribí lo siguiente:HEAD
GET
.htaccess
<LimitExcept GET HEAD POST>
Require valid-user
</LimitExcept>
El problema es que <LimitExcept>
muestra un error que dice not allowed here
, así que intenté usarlo <Limit>
pero aparece el mismo error. También intenté moverlos dentro de mi .conf
archivo de host virtual y sigue apareciendo un error. Lo que no entiendo es que en los documentos oficiales dice que se permite allí y, sin embargo, en mi servidor no.
Respuesta1
Si estás intentando permitir sólo los métodos GET, POST y HEAD, entonces esto debería funcionar bien:
<Directory "/path/to/documentroot">
Require method GET POST HEAD
</Directory>
Deberá colocar esta configuración dentro de su VirtualHost.
EDITAR: Y para responder a su otra pregunta en el comentario (cómo habilitar la autenticación de contraseña solo para solicitudes POST), esto se puede lograr con las siguientes directivas (que puede colocar en /ruta/a/su/directorio/.htaccess):
<RequireAny>
AuthUserFile /path/to/your/.htpasswd
AuthName "Login"
AuthType Basic
Require method GET HEAD
Require valid-user
</RequireAny>
Esto permitirá los métodos GET y HEAD, pero las solicitudes POST activarán la autenticación.
Respuesta2
2.4 tiene un módulo específico para esto, llamado mod_allowmethods, y se desaconseja el uso de Limit/LimitExcept en 2.4. Asegúrate de cargar el módulo y en el virtualhost apropiado agrega esto:
# documentroot dir in virtualhost
<Directory /path/to/dir>
AllowMethods GET HEAD POST
Require valid-user
</Directory>
También puede hacerlo global definiéndolo anteriormente en la configuración del servidor para todo lo que describo a continuación.
*** tenga en cuenta que esto está / en su sistema de archivos, por lo que debe denegar el acceso aquí y permitir directorios específicos como documentroot o alias después, pero los métodos de permiso se propagan más hacia abajo a menos que lo anule más tarde.
<Directory />
Require all denied
AllowMethods GET HEAD POST
</Directory>