Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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