htaccess кэширование

Для того, чтобы включить кэширование, необходимо добавить следующий код в уже знакомый нам файл .htaccess:

<IfModule mod_expires.c>
ExpiresActive On
   ExpiresByType image/jpg "access 1 year"
   ExpiresByType image/jpeg "access 1 year"
   ExpiresByType image/gif "access 1 year"
   ExpiresByType image/png "access 1 year"
   ExpiresByType text/css "access 1 month"
   ExpiresByType text/html "access 1 month"
   ExpiresByType application/pdf "access 1 month"
   ExpiresByType text/x-javascript "access 1 month"
   ExpiresByType application/x-shockwave-flash "access 1 month"
   ExpiresByType image/x-icon "access 1 year"
   ExpiresDefault "access 1 month"
</IfModule>

Параметры access 1 year или access 1 month устанавливают время кэширования для выбранного типа данных. Вы можете настроить эти значения самостоятельно на свое усмотрение. Альтернативный код для включения кэширования через файл .htaccess:

# Кэшировать html и htm файлы на 6 часов
<FilesMatch ".(html|htm)$">
Header set Cache-Control "max-age=21600"
</FilesMatch>

# Кэшировать css, javascript и текстовые файлы на одну неделю
<FilesMatch ".(js|css|txt)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>

# Кэшировать флэш и изображения на месяц
<FilesMatch ".(flv|swf|ico|gif|jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

# Отключить кэширование для исполняемых файлов
<FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>

или

# 1 ГОД
<FilesMatch "\.(ico|pdf|flv)$">
Header set Cache-Control "max-age=29030400, public"
</FilesMatch>
# 1 НЕДЕЛЯ
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
# 2 ДНЯ
<FilesMatch "\.(xml|txt|css|js)$">
Header set Cache-Control "max-age=172800, proxy-revalidate"
</FilesMatch>
# 1 МИНУТА
<FilesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=60, private, proxy-revalidate"
</FilesMatch>

Использование этого правила не означает прямое ускорение загрузки вашего сайта. Оно предназначено для более быстрой загрузки сайта — для уже заходившего на него посетителя, путем отправки статуса 304 для тех элементов, которые не обновлялись.

Таким образом, при повторной загрузке страницы браузер посетителя не будет заново скачивать изображения, скрипты или CSS, а выведет те файлы, которые уже хранятся в его кеше. Вы можете изменить срок жизни кеша, путем корректирования его значения в годах (year), месяцах (month) или, например — секундах(seconds). В примере указан 1 год.

#Усиливаем кеширование
FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|gif|png|css|js)$">
ExpiresActive on
ExpiresDefault «access plus 1 year»
</filesmatch>
</ifmodule>