Comment puis-je obliger Apache2 à analyser (sans erreur) les directives d'en-tête dans un fichier .htaccess?

35

Les pages se chargent avec une erreur de serveur interne de 500, ce qui est dû à une directive qu'Apache n'a pas été configurée pour autoriser.

AllowOverride est défini sur all et sur un fichier .htaccess, notamment:

<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 a:

[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

Que dois-je spécifier pour qu'Apache2 gère correctement la directive 'Header'?

Christos Hayward
la source

Réponses:

65

Avec apache2, lancez simplement a2enmod headerspuis, sudo service apache2 restartet il installera automatiquement le module d’en-têtes.

James Pelton
la source
2
Cette réponse devrait être acceptée
Himanshu Mishra
1
En effet, cette réponse est la meilleure, mais j'ose dire que certaines distributions GNU / Linux modernes (comme la dernière Debian) sont basées sur systemdune syntaxe différente pour la gestion des services. Redémarrez Apache: sudo systemctl restart apache2.service. Cependant, à partir de maintenant, une fonction de secours existe et l'ancienne sudo servicecommande fonctionne donc. Mais cela peut cesser de fonctionner dans un avenir proche.
TranslucentCloud
a2enmodest dans /usr/sbinmon système. Ce n'est pas dans le PATH de mon utilisateur non-sudoer, donc a2enmod n'est pas détectable à moins d'être root. TL; DR: courir sudo a2enmodau lieu de juste a2enmod.
Michael Hoffmann le
14

Vous devrez ajouter une ligne comme celle-ci:

LoadModule headers_module modules/mod_headers.so

A vous httpd.confd'ajouter un soutien pour cela. Sous Ubuntu et similaire, vous pouvez le faire a2enmod headerset l’activer automatiquement dans votre configuration.

Geai
la source