Установите срок действия кэширования HTTP, рекомендованный Google PageSpeed

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

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

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

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

2 ответов


в ваших корнях .реврайт:

<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) наиболее удовлетворительные результаты. Можно спорить о конкретных правилах, поэтому я сказал, что это удовлетворяет меня, но это, безусловно, удовлетворяет PageSpeed.


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

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