Domanda

Sto cercando di consentire Scade intestazioni per le immagini, come raccomandato dal YSlow. Sono sicuro che ho avuto questo lavoro prima, ma ora quando posso controllare YSlow si dice non vengono memorizzati nella cache.

Per il mio .htaccess, ho provato:

ExpiresActive on
ExpiresDefault A0
<FilesMatch "\.(gif|ico|jpg|png)$">
    ExpiresDefault A29030400
    Header append Cache-Control "public"
</FilesMatch>

e

ExpiresActive on
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"

http://www.seoconsultants.com/tools/headers.asp uscite quanto segue per una delle mie immagini:

HTTP Status Code: HTTP/1.1 200 OK
Date: Mon, 05 Oct 2009 20:12:04 GMT
Server: Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4 PHP/5.2.8
X-Powered-By: PHP/5.2.8
Set-Cookie: PHPSESSID=5d11f4d8aa37ceee6605786e59ff4f0f; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: lastlogin=1254773024; expires=Mon, 02-Nov-2009 20:12:04 GMT
Connection: close
Content-Type: image/jpeg

La parte Set-Cookie sembra corretto ma l'Expires non è. Come faccio a impostare scade correttamente e perché si differenziano? Ho ricontrollato che mod_expires e mod_headers sono abilitati.

È stato utile?

Soluzione

Da l'intestazione Set-Cookie, sembra che questo è parte di una sessione php. php disabilita automaticamente la cache dopo un session_start ().

È possibile modificare questo comportamento modificando session.cache_limiter nel tuo php.ini. Vedere la pagina di manuale di PHP per le varie impostazioni.

In alternativa, si potrebbe provare a utilizzare "set" al posto di "aggiungere" per ignorare le intestazioni nel vostro .htaccess.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top