Question

Je suis en train de permettre d'en-têtes Expires images tel que recommandé par YSlow. Je suis sûr que j'ai eu ce travail avant, mais maintenant, quand je vérifie YSlow il dit qu'ils ne sont pas mises en cache.

Pour ma .htaccess, j'ai essayé:

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

et

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 produit les éléments suivants pour un de mes images:

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 partie Set-Cookie a l'air correct, mais la tête Expires est pas. Comment puis-je configurer correctement et pourquoi EXPIRES diffèrent-ils? Je l'ai vérifié deux fois que mod_expires et mod_headers sont activés.

Était-ce utile?

La solution

De l'en-tête Set-Cookie, on dirait que cela fait partie d'une session php. php désactive automatiquement après la mise en cache d'un session_start ().

Vous pouvez modifier ce comportement en changeant session.cache_limiter dans votre php.ini. Voir la page de manuel PHP les différents paramètres.

Vous pouvez essayer d'utiliser « set » au lieu de « ajouter » pour remplacer les en-têtes dans votre .htaccess.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top