php - urls - Legen Sie den HTTP-Caching-Ablauf fest, der von Google PageSpeed empfohlen wird




rendering-blockierende roundtrips (2)

Es kann mit htaccess und php gemacht werden. In der Regel möchten Sie nicht zwingen, den tatsächlichen HTML-Code zwischenzuspeichern, da sein dynamischer datenbankgestützter Inhalt vorhanden ist (dies kann bei Bedarf mit der PHP-Funktion header() geschehen). Was Sie zwischenspeichern möchten, ist externe CSS und Javascript und Bilddateien.

Hier finden Sie eine .htaccess-Lösung: http://www.askapache.com/htaccess/apache-speed-expires.html

Ich habe Tests auf meiner Website mit Google's PageSpeed ​​durchgeführt und es empfiehlt, dass ich "Browser-Caching nutzen" und die folgende Ressource zur Verfügung gestellt:

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

Diese Ressource erklärt nie, wie das Ablaufdatum meiner HTTP-Header tatsächlich geändert wird. Tue ich dies durch .htaccess? Ich möchte das Caching so lange wie möglich festlegen (ohne die Google-Richtlinie für ein Jahr zu verletzen).

Jeder Hinweis auf empfohlene Einstellungen (für eine benutzerdefinierte PHP-gesteuerte Social-Networking-Community) würde sehr geschätzt werden.


Im .htaccess Ihrer Wurzel:

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

Und folgen Sie:

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

Dies ist derselbe Code, den ich für jede Eigenschaft, die ich verwalte, verwende und bietet mir (und PageSpeed) die befriedigendsten Ergebnisse. Man kann über bestimmte Regeln streiten, deshalb habe ich gesagt, dass es mich befriedigt, aber es erfüllt sicherlich PageSpeed.





pagespeed