¿Por qué Apache lee archivos .htaccess aunque estén deshabilitados?

Jul 31 2020

Según la documentación de Apache, configurar las opciones AllowOverridey AllowOverrideListen None, ignorará completamente los .htaccessarchivos. Ni siquiera intentar leerlos desde el sistema de archivos.

Tengo ambas opciones configuradas, nonepero Apache todavía lee los .htaccessarchivos. Lo sé porque si coloco un .htaccessarchivo con algunas directivas válidas, arroja un error 500. Al comentar las directivas (esencialmente un .htaccessarchivo vacío ), no se produce el error 500. Entonces, obviamente, Apache todavía está leyendo los .htaccessarchivos.

Registro de errores de Apache2 (desinfectado para consumo público):
[jueves 30 de julio 23: 36: 35.393831 2020] [núcleo: alerta] [pid 60903] [cliente dddd: 10554] /var/www/example/.htaccess: Requerir no permitido aquí , árbitro:http://example.net/

La pregunta es ¿por qué? ¿Qué me estoy perdiendo? ¿Cómo hacer que se comporte según la documentación? es decir, ni siquiera intente leer los .htaccessarchivos.

Referencia: https://httpd.apache.org/docs/2.4/mod/core.html#allowoverride

Cuando esta directiva se establece en None y AllowOverrideList se establece en None, los archivos .htaccess se ignoran por completo. En este caso, el servidor ni siquiera intentará leer archivos .htaccess en el sistema de archivos.

Respuestas

2 MrWhite Jul 31 2020 at 17:32

Esto parecería ser un error en versiones anteriores de Apache 2.4 que, según se informa, se corrigió en Apache 2.4.20
https://bz.apache.org/bugzilla/show_bug.cgi?id=58528

El error parece ser que cuando se establece explícitamente AllowOverrideList Noneel valor no se restablece correctamente .

He verificado que veo el mismo comportamiento (incorrecto) en Apache 2.4.7

Si nunca ha establecido AllowOverrideListotro lugar en la configuración de su servidor, puede omitir esta directiva, ya que la predeterminada es None. (Cuando se deja como predeterminado , parece que se interpreta correctamente según los documentos).