Pergunta

Eu estou tentando permitir Expira cabeçalhos para imagens, como recomendado pelo YSlow. Eu estou certo que eu tinha esse trabalho antes, mas agora quando eu verificar YSlow ele diz que eles não estão sendo armazenadas em cache.

Para o meu .htaccess, eu tentei:

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 saídas a seguir para uma de minhas imagens:

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

A parte Set-Cookie parece correto, mas o cabeçalho de expiração não é. Como eu definido expirar corretamente e por que eles diferem? Eu dobro verificado que mod_expires e mod_headers estão habilitados.

Foi útil?

Solução

A partir do cabeçalho Set-Cookie, parece que isso é parte de uma sessão de php. php automaticamente desativa o cache depois de uma session_start ().

Você pode modificar esse comportamento, alterando session.cache_limiter no seu php.ini. Consulte manual de página PHP para as várias configurações.

Como alternativa, você pode tentar usar "set" em vez de "append" para substituir os cabeçalhos no seu .htaccess.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top