Еще немного о загрузке сайта и об экономии трафика
Недавно я публиковал статью о том . Принцип работы основывался на сжатии и с помощью веб-сервера Apache и конфигурационного файла .htaccess
.
Естественно, я попробовал на своем блоге, и убедился в действенности метода. Но оказывается это еще не конец! Можно еще кое-чего подкрутить… Если на вашем хостинге (или выделенном сервере) установлен Apache 2, вы можете использовать его встроенный модуль mod_deflate
. Для того, чтобы ваши текстовые файлы сжимались с помощью указанного выше модуля, вам необходимо прописать в .htaccess
следующие строки:
<IfModule mod_deflate.c> <FilesMatch "\.(css|js|x?html?|php)$"> SetOutputFilter DEFLATE </FilesMatch> </IfModule>
Этот код будет сжимать по алгоритму gzip
все файлы со следующими расширениями *.css, *.js, *.html, *.html, *.xhtml, *.php.
Итого, объединяя обе статьи, следующий пример будет сжимать текстовые файлы и кэшировать статические файлы:
# Сжимаем текстовые файлы <IfModule mod_deflate.c> <FilesMatch "\.(css|js|x?html?|php)$"> SetOutputFilter DEFLATE </FilesMatch> </IfModule> # Настраиваем кэширование на будущее <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 3600 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 604800 seconds" ExpiresByType text/html "access plus 3600 seconds" ExpiresByType application/xhtml+xml "access plus 3600 seconds" </IfModule> # Настройка заголовков Cache-Control <IfModule mod_headers.c> <FilesMatch "\.(ico|jpe?g|png|gif|swf)$"> Header set Cache-Control "max-age=2592000, public" </FilesMatch> <FilesMatch "\.(css)$"> Header set Cache-Control "max-age=604800, public" </FilesMatch> <FilesMatch "\.(js)$"> Header set Cache-Control "max-age=216000, private" </FilesMatch> <FilesMatch "\.(x?html?|php)$"> Header set Cache-Control "max-age=3600, private, must-revalidate" </FilesMatch> </IfModule> # Выключаем ETags <IfModule mod_headers.c> Header unset ETag </IfModule> FileETag None # Удаляем заголовок Last-Modified <IfModule mod_headers.c> Header unset Last-Modified </IfModule>
Как итого, рекомендую…