Заголовки Set-Cookie и Expires отличаются - PullRequest
0 голосов
/ 06 октября 2009

Я пытаюсь включить заголовки Expires для изображений в соответствии с рекомендациями 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 включены.

1 Ответ

1 голос
/ 21 октября 2009

Из заголовка Set-Cookie похоже, что это часть php-сессии. php автоматически отключает кэширование после session_start ().

Вы можете изменить это поведение, изменив session.cache_limiter в вашем php.ini. См. страницу руководства PHP для различных настроек.

В качестве альтернативы, вы можете попробовать использовать «set» вместо «append» для переопределения заголовков в вашем .htaccess.

...