Марат-блог
Услуги по продвижению и разработке сайта
Отправить заявку
Заказать обратный звонок

Спасибо, Ваша заявка принята.

В ближайшее время менеджер свяжется с Вами.

Главная » DEV » Директивы кеширования htaccess
Директивы кеширования htaccess
Программирование
3659
12 июля 2015

Директивы кеширования htaccess

Кэширование для всех типов файлов по времени доступа

ExpiresActive on
ExpiresDefault "access plus 600 seconds"

Кэширование для всех типов файлов по времени изменения

ExpiresActive on
ExpiresDefault "modification plus 600 seconds"

Кэширование для определённых типов файлов

ExpiresByType text/css "modification plus 600 seconds"
ExpiresByType image/jpeg "modification plus 600 seconds"
ExpiresByType image/gif "modification plus 600 seconds"
ExpiresByType image/x-ico "modification plus 600 seconds"
ExpiresByType image/png "modification plus 600 seconds"

Запрет кеширования с помощью сервера Apache

Откройте файл конфигурации сервера Apache httpd.conf и раскомментируйте следующие строчки:

LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
...
AddModule mod_expires.c
AddModule mod_headers.c

Впишите в .htaccess следующее:

# Запрещение кеширования в этой папке
# Необходимо включение модулей
# mod_headers.c и mod_expires.c
#
# Заголовок Cache-Control
<IfModule mod_headers.c>
Header append Cache-Control "no-store, no-cache, must-revalidate"
</IfModule>

# Заголовок Expires
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "now"
</IfModule>

Необходимые заголовки будут передаваться автоматически, и специально их писать в PHP уже не нужно - кэш уже выключен!

Описание http-заголовка кеширования Cache-control

Кеширование с помощью файла .htaccess

# Разрешение кеширования в этой папке
# Необходимо включение модулей
# mod_headers.c и mod_expires.c
#
<IfModule mod_expires.c>
ExpiresActive on
#ExpiresDefault "access plus 1 hours"
#ExpiresDefault "access plus 10 years"
ExpiresDefault                          "access plus 1 month"
ExpiresByType text/cache-manifest       "access plus 0 seconds"
ExpiresByType text/html                 "access plus 0 seconds"
ExpiresByType text/xml                  "access plus 0 seconds"
ExpiresByType application/xml           "access plus 0 seconds"
ExpiresByType application/json          "access plus 0 seconds"
ExpiresByType application/rss+xml       "access plus 1 month"
ExpiresByType image/x-icon              "access plus 1 week"
ExpiresByType image/gif                 "access plus 1 year"
ExpiresByType image/png                 "access plus 1 year"
ExpiresByType image/jpg                 "access plus 1 year"
ExpiresByType image/jpeg                "access plus 1 year"
ExpiresByType video/ogg                 "access plus 1 year"
ExpiresByType audio/ogg                 "access plus 1 year"
ExpiresByType audio/mp3                 "access plus 1 year"
ExpiresByType video/mp4                 "access plus 1 year"
ExpiresByType video/webm                "access plus 1 year"
ExpiresByType text/x-component          "access plus 1 month"
ExpiresByType font/truetype             "access plus 1 year"
ExpiresByType font/opentype             "access plus 1 year"
ExpiresByType application/x-font-woff   "access plus 1 year"
ExpiresByType image/svg+xml             "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
ExpiresByType text/css                  "access plus 2 months"
ExpiresByType application/javascript    "access plus 2 months"
ExpiresByType text/javascript           "access plus 2 months"
<IfModule mod_headers.c>
Header append Cache-Control "public"
</IfModule>
</IfModule>

Кеширование javascript файлов с помощью файла .htaccess

<FilesMatch .*\.js$>
    ExpiresDefault "access plus 3 days"
</FilesMatch>

Будьте осторожны при кешировании, т.к. при изменении файла, пользователь может получить новый вариант только через 3 дня!