- Home
- Categorie
- Coding e Sistemistica
- WordPress
- Add Expires headers
-
Add Expires headers
Ciao a tutti, ho configurato l'HTACCESS con W3 Total Cache (il sito è in wordpress). su Yslow mi da come problema Add Expires headers anche se sono stati configurati nell'HTACCESS e in W3TC. Dove e quale può essere il problema?
-
Prova a riportare cosa hai scritto nel file .htaccess.
Valerio Notarfrancesco
-
Dovrebbe essere questa la parte di codice:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css A31536000
ExpiresByType application/x-javascript A31536000
ExpiresByType text/html A31536000
ExpiresByType text/richtext A31536000
ExpiresByType image/svg+xml A31536000
ExpiresByType text/plain A31536000
ExpiresByType text/xsd A31536000
ExpiresByType text/xsl A31536000
ExpiresByType text/xml A31536000
ExpiresByType video/asf A31536000
ExpiresByType video/avi A31536000
ExpiresByType image/bmp A31536000
ExpiresByType application/java A31536000
ExpiresByType video/divx A31536000
ExpiresByType application/msword A31536000
ExpiresByType application/x-msdownload A31536000
ExpiresByType image/gif A31536000
ExpiresByType application/x-gzip A31536000
ExpiresByType image/x-icon A31536000
ExpiresByType image/jpeg A31536000
ExpiresByType application/vnd.ms-access A31536000
ExpiresByType audio/midi A31536000
ExpiresByType video/quicktime A31536000
ExpiresByType audio/mpeg A31536000
ExpiresByType video/mp4 A31536000
ExpiresByType video/mpeg A31536000
ExpiresByType application/vnd.ms-project A31536000
ExpiresByType application/vnd.oasis.opendocument.database A31536000
ExpiresByType application/vnd.oasis.opendocument.chart A31536000
ExpiresByType application/vnd.oasis.opendocument.formula A31536000
ExpiresByType application/vnd.oasis.opendocument.graphics A31536000
ExpiresByType application/vnd.oasis.opendocument.presentation A31536000
ExpiresByType application/vnd.oasis.opendocument.spreadsheet A31536000
ExpiresByType application/vnd.oasis.opendocument.text A31536000
ExpiresByType audio/ogg A31536000
ExpiresByType application/pdf A31536000
ExpiresByType image/png A31536000
ExpiresByType application/vnd.ms-powerpoint A31536000
ExpiresByType audio/x-realaudio A31536000
ExpiresByType application/x-shockwave-flash A31536000
ExpiresByType application/x-tar A31536000
ExpiresByType image/tiff A31536000
ExpiresByType audio/wav A31536000
ExpiresByType audio/wma A31536000
ExpiresByType application/vnd.ms-write A31536000
ExpiresByType application/vnd.ms-excel A31536000
ExpiresByType application/zip A31536000
</IfModule>Comunque non l'ho inserita io manualmente, l'ha generata automaticamente il plugin. Per la configurazione di W3TC ho seguito un paio di guide e credo di aver capito come funzioni, ma yslow mi da questo errore che non riesco a correggere con nessuna configurazione.Ho copiato anche alcune righe di htaccess da dei siti che piegavano come risolvere questo problema ma i risultati sono stati o che non andava più il sito, oppure nessun risultato come ora.
-
Non sono un sistemista, ma forse il problema è che il server dove ti appoggi non supporta il mod_expires.
Prova in alternativa quest'altro tipo di istruzione che invece richiede attivo il mod_headers, magari disabilitando momentaneamente la gestione del plug-in in modo che tu possa modificare a mano il file .htaccess:<FilesMatch ".(jpg|jpeg|png|gif|css|js)$">
Header set Cache-Control "max-age=37739520, public"
</FilesMatch>Valerio Notarfrancesco
-
Ciao esiste un modo per aggiungere gli Expires headers che non richieda ne mod_expires ne mod_headers? Il mio hosting non li supporta...Grazie
-
Se nessuno ha altre idee per agire lato server potresti sempre impostare l'Expires usando un linguaggio come php o asp.
Se puoi usare il php ad esempio, potresti fare una cosa del genere:
[PHP]<?php header('Expires: 31 Dec 2020 01:00:00 GMT');[/PHP]
oppure
[PHP]<?php header('Expires: ' . gmdate('D, d M Y H:i:s', time()+2592000) . ' GMT'); ?>[/PHP]
2592000 imposta la data di 30 giorni avanti (606024*30)Valerio Notarfrancesco
-
Grazie mille. Non essendo molto esperta, dove devo scriverlo questo codice?
-
Lo devi scrivere come prima istruzione del file php (può anche funzionare con i file html facendoli processare all'interprete php), cioè prima di ogni altro output, anche dell'intestazione html.
Questo se lo devi fare per file singoli. Se ti serve per Wordpress puoi inserire l'istruzione come prima riga del file header.php del tuo tema (oppure nel file che per primo viene richiamato dal tuo tema se non rispecchia gli standard).
Valerio Notarfrancesco
-
Ho provato entrambi i codici ma non sembravano funzionare. Infatti Gtmetrix mi segnava oltre 60 componenti "without a far-future expiration date."
Per scrupolo ho invece provato questo nel file .htaccess
<FilesMatch "\.(jpg|jpeg|png|gif|css|js)$"> Header set Cache-Control "max-age=37739520, public" </FilesMatch>
E i componenti sono scesi a 10. Prova fatto più volte. Non mi spiego la cosa visto che il supporto del mio hosting mi ha detto che mod_expires e mod_headers non sono abilitati. Voi che dite?
-
Che il mod_headers è abilitato, almeno per adesso. Visto che ti hanno detto che non lo supportano potrebbero rimuoverlo in qualunque momento.
Cosa intendi per "ho provato entrambi i codici"?Valerio Notarfrancesco
-
Intendevo i due codici in PHP che hai postato sopra. Li ho inseriti in header.php ma il primo causava un errore di sintassi mentre l'altro appunto sembrava non funzionare. Per ora lascio così, starò a vedere.
-
Nel primo in effetti è sbagliata la sintassi della data, manca il giorno.
Il secondo l'ho provato adesso su un blog Wp di prova e funziona. Prova con uno dei tanti siti che ti analizzano gli header per vedere cosa succede, oppure questa estensione per Firefox addons.mozilla.org/en-us/firefox/addon/live-http-headers/
Quando inserisci l'istruzione devi vederla negli header del flusso http restituito dalla pagina.
Se la vedi significa che stai fornendo una corretta informazione al browser che non ricaricherà un elemento che ha già in cache, e tu raggiungi lo scopo di velocizzare il sito.Valerio Notarfrancesco