¿Cómo consigo que Apache2 analice (sin error) las directivas de encabezado en un .htaccess?

35

Estoy recibiendo páginas cargando con un error interno del servidor 500, debido a una directiva que Apache no ha sido configurada para permitir.

Tengo AllowOverride establecido en all, y un archivo .htaccess, que incluye:

<FilesMatch "\.(eot|ico|pdf|flv|jpg|jpeg|png|gif|svg|swf|ttf|woff)$">
Header set Cache-Control "max-age=31536000, public"
Header set Expires "Wed, 23 Apr 2014 17:00:01 UTC"
</FilesMatch>

/var/log/apache2/error.log tiene:

[Sat Jul 20 15:12:36 2013] [alert] [client 24.15.83.241] /home/jonathan/.htaccess: Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration

¿Qué debo especificar para que Apache2 maneje correctamente la directiva 'Encabezado'?

Christos Hayward
fuente

Respuestas:

65

Con apache2, simplemente ejecute a2enmod headersy luego sudo service apache2 restartinstalará el módulo de encabezados automáticamente.

James Pelton
fuente
2
Esta respuesta debe ser aceptada
Himanshu Mishra
1
De hecho, esta respuesta es la mejor, sin embargo, me atrevo a decir que algunas distribuciones modernas de GNU / Linux (como la última Debian) se basan systemdy tienen una sintaxis diferente en la administración de servicios. Reinicia Apache: sudo systemctl restart apache2.service. Sin embargo, a partir de ahora existe una función alternativa y, por lo tanto, el sudo servicecomando anterior funciona. Pero puede dejar de funcionar en el futuro más cercano.
TranslucentCloud
a2enmodestá en /usr/sbinmi sistema. Eso no está en la RUTA de mi usuario no sudoer, por lo que a2enmod no se puede descubrir a menos que sea root. TL; DR: ejecutar en sudo a2enmodlugar de solo a2enmod.
Michael Hoffmann
14

Deberá agregar una línea como:

LoadModule headers_module modules/mod_headers.so

A su httpd.confpara agregar soporte para eso. En Ubuntu y similares, puede hacerlo a2enmod headersy lo habilitará automáticamente en su configuración.

Arrendajo
fuente