.htaccess Set-Cookie和Expires标头不同

5jvtdoz2  于 2022-12-27  发布在  其他
关注(0)|答案(1)|浏览(144)

我正在尝试启用YSlow推荐的过期头文件。我确信我以前有过这个功能,但是现在当我检查YSlow时,它说它们没有被缓存。
对于我的.htaccess,我尝试过:

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

以及

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为我的一个图像输出以下内容:

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

Set-Cookie部分看起来正确,但Expires头不正确。如何正确设置Expires?为什么它们不同?我已经仔细检查了mod_expires和mod_headers是否启用。

yzuktlbb

yzuktlbb1#

Set-Cookie头文件看,这似乎是PHP会话的一部分。PHP在session_start()之后自动禁用缓存。
您可以通过在php.ini中修改session.cache_limiter来修改此行为。有关各种设置,请参见PHP手册页。
或者,您可以尝试使用set而不是append来覆盖. htaccess中的头。

相关问题