Définir L'Expiration de la mise en cache HTTP, recommandée par Google PageSpeed

j'ai effectué des tests sur mon site Web en utilisant PageSpeed de Google et il recommande que je "tirer parti de la mise en cache navigateur" et fourni la ressource suivante:

http://code.google.com/speed/page-speed/docs/caching.html#LeverageBrowserCaching

cette ressource n'explique jamais comment changer la date d'expiration de mes en-têtes http. Dois-je le faire à travers .htaccess? Je voudrais régler la mise en cache aussi longtemps que possible (sans violer la Politique de Google d'un an max).

tout conseil sur les paramètres recommandés (pour une communauté de réseaux sociaux pilotée par php) serait grandement apprécié.

25
demandé sur pws5068 2010-04-20 20:15:07
la source

2 ответов

Dans votre racine .htaccess:

<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>

puis:

<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>

c'est exactement le même code que j'utilise sur toutes les propriétés que je gère et qui m'offre (et PageSpeed) les résultats les plus satisfaisants. On peut argumenter sur des règles spécifiques, c'est pourquoi j'ai dit qu'il satisfait me, mais il satisfait certainement PageSpeed.

29
répondu methode 2015-06-26 12:55:43
la source

cela peut être fait à la fois avec htaccess et php. Typiquement vous ne voudriez pas forcer la mise en cache du html réel puisque son contenu dynamique de base de données (il peut être fait avec le header() fonction php si nécessaire). Ce que vous voulez mettre en cache est CSS externe et javascript, et des fichiers image.

Voir ici pour une .solution htaccess:http://www.askapache.com/htaccess/apache-speed-expires.html

1
répondu Mark 2010-04-20 20:23:08
la source

Autres questions sur