Установить срок действия кэширования HTTP, рекомендуемый Google PageSpeed - PullRequest
25 голосов
/ 20 апреля 2010

Я запустил тесты на своем веб-сайте, используя PageSpeed ​​от Google, и он рекомендует «Использовать кэширование браузера» и предоставил следующий ресурс:

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

Этот ресурс никогда не объясняет, как на самом деле изменить дату истечения срока действия моих http-заголовков. Я делаю это через .htaccess? Я хотел бы установить кеширование как можно дольше (не нарушая политику Google, максимум год).

Буду очень признателен за любые рекомендации по рекомендуемым настройкам (для настраиваемого php-управляемого сообщества социальных сетей).

Ответы [ 2 ]

29 голосов
/ 20 апреля 2010

В вашем корне .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>

и далее:

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

Это точно такой же код, который я использую для каждого свойства, которым я управляю, и предлагает мне (и PageSpeed) наиболее удовлетворительные результаты.Можно спорить о конкретных правилах, поэтому я сказал, что он удовлетворяет me , но, безусловно, удовлетворяет PageSpeed.

1 голос
/ 20 апреля 2010

Это можно сделать как с htaccess, так и с php. Как правило, вы не захотите принудительно кэшировать фактический html, так как его содержимое управляется динамической базой данных (при необходимости это можно сделать с помощью функции header() php). То, что вы хотите кешировать, это внешние css & javascript и файлы изображений.

См. Здесь для решения .htaccess: http://www.askapache.com/htaccess/apache-speed-expires.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...