Set-Cookie und Verfällt Header unterscheiden
-
19-09-2019 - |
Frage
Ich versuche Verfällt Header für Bilder zu ermöglichen, wie von YSlow empfohlen. Ich bin sicher, ich hatte diese Arbeiten vor, aber jetzt, wenn ich überprüfen YSlow es sagt, sie sind nicht im Cache gespeichert werden.
Für meine .htaccess, ich habe versucht:
ExpiresActive on
ExpiresDefault A0
<FilesMatch "\.(gif|ico|jpg|png)$">
ExpiresDefault A29030400
Header append Cache-Control "public"
</FilesMatch>
und
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 gibt die folgende für eines meiner Bilder:
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
Der Set-Cookie-Teil sieht richtig, aber die Expires-Header nicht. Wie kann ich Satz Gültig bis richtig und warum unterscheiden sie sich? Ich habe doppelt geprüft, dass mod_expires und mod_headers aktiviert sind.
Lösung
Aus den Set-Cookie-Header, es sieht aus wie dieser Teil einer PHP-Sitzung ist. php automatisch deaktiviert das Caching nach einem session_start ().
Sie können dieses Verhalten ändern, indem session.cache_limiter in der php.ini zu ändern. Siehe die PHP-Manual Seite die verschiedenen Einstellungen.
Alternativ könnten Sie versuchen, mit „Set“ anstelle von „Anfügen“, um die Header in der .htaccess außer Kraft setzen.