Come posso ottenere Apache2 per analizzare (senza errori) le direttive di intestazione in un .htaccess?


35

Ricevo il caricamento delle pagine con un errore del server interno 500, a causa di una direttiva che Apache non è stata configurata per consentire.

Ho AllowOverride impostato su tutti e un file .htaccess, tra cui:

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

[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

Cosa devo specificare in modo che Apache2 gestisca correttamente la direttiva "Header"?

Risposte:


65

Con apache2, basta eseguire a2enmod headerse quindi sudo service apache2 restarte installerà automaticamente il modulo delle intestazioni.


2
Questa risposta dovrebbe essere accettata
Himanshu Mishra il

1
In effetti questa risposta è la migliore, tuttavia oso dire che alcune distro GNU / Linux moderne (come l'ultima Debian) sono basate systemde hanno una sintassi diversa sulla gestione dei servizi. Riavviare Apache: sudo systemctl restart apache2.service. Tuttavia, sin d'ora esiste una funzione di fallback e quindi il vecchio sudo servicecomando funziona. Ma potrebbe smettere di funzionare nel prossimo futuro.
TranslucentCloud

a2enmodè nel /usr/sbinmio sistema. Questo non è nel PERCORSO del mio utente non-sudoer, quindi a2enmod non è rilevabile a meno che tu non sia root. TL; DR: esegui sudo a2enmodanziché solo a2enmod.
Michael Hoffmann,

14

Devi aggiungere una riga come:

LoadModule headers_module modules/mod_headers.so

Per httpd.confaggiungere il tuo supporto. In Ubuntu e simili, puoi farlo a2enmod headerse lo abiliterà automaticamente nella tua configurazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.