php - solucion - especificar caché de navegador
Establecer la caducidad del caché HTTP, recomendado por Google PageSpeed (2)
Ejecuté pruebas en mi sitio web usando PageSpeed de Google y me recomienda que "aproveche el almacenamiento en caché del navegador" y proporcioné el siguiente recurso:
http://code.google.com/speed/page-speed/docs/caching.html#LeverageBrowserCaching
Este recurso nunca explica cómo cambiar realmente la fecha de caducidad de mis encabezados http. ¿Lo hago a través de .htaccess? Me gustaría establecer el almacenamiento en caché durante el mayor tiempo posible (sin violar la política de Google de un año como máximo).
Cualquier consejo sobre la configuración recomendada (para una comunidad personalizada de redes sociales impulsada por php) sería muy apreciado.
En el .htaccess de tu raíz:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
ExpiresByType text/html "access plus 600 seconds"
ExpiresByType application/xhtml+xml "access plus 600 seconds"
</IfModule>
Y sigue por:
<IfModule mod_headers.c>
<FilesMatch "//.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "max-age=2692000, public"
</FilesMatch>
<FilesMatch "//.(css)$">
Header set Cache-Control "max-age=2692000, public"
</FilesMatch>
<FilesMatch "//.(js)$">
Header set Cache-Control "max-age=216000, private"
</FilesMatch>
<FilesMatch "//.(x?html?|php)$">
Header set Cache-Control "max-age=600, private, must-revalidate"
</FilesMatch>
Header unset ETag
Header unset Last-Modified
</IfModule>
Este es exactamente el mismo código que uso en cada propiedad que administro y me ofrece (y PageSpeed) los resultados más satisfactorios. Uno puede discutir sobre reglas específicas, es por eso que dije que me satisface, pero ciertamente satisface la velocidad de la página.
Se puede hacer con htaccess y php. Por lo general, no querrá forzar el almacenamiento en caché del html real ya que su contenido dinámico impulsado por la base de datos (se puede hacer con la función de header()
php si es necesario). Lo que desea almacenar en caché es css y javascript externos, y archivos de imagen.
Vea aquí para una solución .htaccess: http://www.askapache.com/htaccess/apache-speed-expires.html