2012-05-30 10 views
5

In httpd.conf le ultime righe sono:Header non Scade lavorando

ExpiresActive On 
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
    ExpiresDefault "access plus 3 days" 
</FilesMatch> 

Quando eseguo YSlow si dice tutti i miei file CSS (e altri) non hanno set di scadenza. I file CSS sono in sottodirectory ma credo che "\." dovrebbe corrispondere a tutti i file indipendentemente dalla sottodirectory.

Apache è configurato per host virtuali, ma le direttive precedenti sono al di fuori della sezione vhosts nella parte inferiore di httpd.conf.

C'è una direttiva per LoadModule expires_module modules/mod_expires.so nel file .conf.

Il sito è in AWS con AWS Linux e Apache2. Ho riavviato l'apache prima di verificare se ha funzionato.

risposta

7

In risposta alla tua domanda, questo funziona per me nel mio httpd.conf:

LoadModule expires_module /usr/lib/apache2/modules/mod_expires.so 
ExpiresActive On 

<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
ExpiresDefault "access plus 3 days" 
</filesMatch> 

Ecco alcune cose da provare:

1) Assicurarsi che mod_expires.so è dove si pensa è. Puoi vedere quali moduli vengono inclusi utilizzando questo nel tuo terminale: apache2 -M.

2) Assicurarsi che le direttive si applicano ai file che ti interessa (cioè non sovrascritte da un file .htaccess da qualche parte più in basso la linea)

3) Assicurarsi che la direttiva LoadModule è nel vostro httpd. file conf.

4) Nella tua espressione regolare FilesMatch, dovresti evitare il punto con una barra rovesciata, altrimenti puoi abbinare qualsiasi carattere. Non è un grosso problema, ma si finirebbe applicando la regola a pagine non statiche come "site.com/politico" (nota il finale ico) ad esempio.

+0

Grazie per la risposta chiara. Avevo tutto bene tranne il posizionamento del codice (il tuo item3). L'ho inserito nella sezione host virtuale per il sito e presto yslow è stato felice! Grazie ancora. – Jim

+0

Grande, felice che abbia aiutato! – pieman72

Problemi correlati