Главная Сайтостроителю Почитать Administrator GZip-сжатие и принудительное кэширования файлов стредствами .htaccess
10.01.2011 16:16:05
GZip-сжатие и принудительное кэширования файлов стредствами .htaccess

Одним из способов, позволяющим экономить трафик посетителей сайта является включение принудительного кеширования файлов на стороне клиента. Говоря простым языком, для объектов, которые не изменяются на сайте (фоновые изображения, скрипты, CSS-файлы) можно задать время, в течении которого они будут храниться на компьютере посетителя. Таким образом, при следующем посещении его браузер уже не будет скачивать изображения с сайта, а возьмет из своего кеша.

Для этого используются директивы ExpiresActive , ExpiresDefault и ExpiresByType. Перед их применением необходимо уточнить у службы поддержки хостера поддерживается ли модуль mod_expires вашим сервером.

Теперь перейдем к редактированию файла .htaccess (он находится в корне сайта). Следующие строки можно дописать в его конце.

1. Проверяем, работает ли модуль mod_expires:

...

2. Дальнейший код вписывается вместо троеточия. Активируем установку http- заголовков

ExpiresActive On

3. Далее задаем время хранения по умолчанию и для различных типов данных

ExpiresDefault "access plus 3600 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/jpg "access plus 2592000 seconds"
ExpiresByType image/ico "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/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
ExpiresByType text/html "access plus 3600 seconds"

ExpiresByType application/xhtml+xml "access plus 3600 seconds"

4. Далее настраиваем Cache-Control:



Header set Cache-Control "max-age=2592000, public"


Header set Cache-Control "max-age=604800, public"


Header set Cache-Control "max-age=216000, private"


Header set Cache-Control "max-age=3600, private, must-revalidate"

 

# Выключаем ETags
FileETag None
Header set Cache-Control "max-age=290304000, public#

Удаляем заголовок Last-Modified"

Header unset Last-Modified


SetOutputFilter DEFLATE

5. Так же можно использовать GZip-сжатие. актуально только для сервера Apache2. Этот код необходимо написать перед тем,которые был написан на шаге 1. Этот код будет сжимать по алгоритму gzip все файлы со следующими расширениями *.css, *.js, *.html, *.html, *.xhtml, *.php.



SetOutputFilter DEFLATE

 

Можно скачать готовый файл .htaccess и скопировать его в корень сайта.