|
||||||||||||||||||||||||||||||||||||||
|
Ускорить загрузку сайта, включить кеширование, GZIP сжатие .htaccess. Как включить кэш браузера в htaccessОсновные правила htaccess - gzip сжатие, кэш компрессия и прЯ уже писал подробную статью по теме файла .htaccess и о многих его gzip правилах (ссылка будет ниже), — однако, вопрос скорости загрузки сайта будет ещё долго (если не всегда) будоражить умы веб мастеров! Приходят письма с вопросами: как включить gzip сжатие, кэширование картинок в браузере пользователя и прочая.?. Приходилось ссылаться на прежнюю статью, которая достаточно объёмная, подробная — новички путаются! И вот я решил написать ещё один коротенький пост, но уже без лирических отступлений: этакий реестрик ( в том числе и для себя), который время от времени буду пополнять современными вариантами кода ускорения сайта. В этой статье рассмотрим несколько действительно полезных способов (строк кода), которые целесообразно поместить к себе на сервер в файл .htaccess. правила .htaccess
Нужно понимать, что эликсира на все случаи жизни не бывает! Всякий предложенный веб разработчиком код нужно тестировать на личном сайте, и не иначе! Не исключение и правила .htaccess: многое положительное или отрицательное в скоростях загрузок сайта напрямую зависит от того хостинга, на котором физически расположен ваш сайт.
Я всегда советую потратить пару минут времени и поинтересоваться у своего хостера вопросом: включено ли сжатие gzip в режиме mod_deflate именно в вашем аккаунте? Не бойтесь показаться занудой — бойтесь не раскусить хренового хостера сразу! …кстати, вот прежняя подробная статья о файле htaccess.
Кстати же, вот ещё статья, в которой я делал подробный обзор известных хостингов, думаю, будет полезно познакомиться… а также нелишне узнать как перевести свой блог/сайт на https. Как и говорилось выше, качество площадки — хостинга, на котором физически расположен наш сайт, играет важнейшую роль. Так что стоит посерьёзнее отнестись к выборам хостинга.
Для тех, которые владеют сайтами посерьёзнее — порталами и прочей тяжёлой техникой) рекомендую обратить внимание на эту площадку, где можно запросто арендовать сервер.
к оглавлению $ подготовим сайт к режиму gzip-сжатия
Чтоб не путаться где и как правильно добавляется код в файл .htaccess — прописывайте строки перед:
# END WordPress
первый блок кода, и уже за ним последующие…
Подключаем (или дополнительно организуем) на нашем сервере режим mod_deflate:
#gzip сжатие <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4.0678 no-gzip BrowserMatch bMSIE gzip-only-text/html <ifmodule mod_gzip.c> mod_gzip_on Yes mod_gzip_item_include file \.js$ mod_gzip_item_include file \.css$ </IfModule> </IfModule> # фин gzip сжатие
Этот код стоит установить — однако — непременно проверьте его отработку ВКУПЕ с плагином кэширования, например (если установлен) WP Super Cache. В его настроечных недрах поиграйте «галочкой» в строке Сжимать файлы кэша чтобы ускорить работу. (Рекомендовано).
В любом случае от результата теста, предложенный выше код не повредит: и стоит помнить, что у нас цели улучшения скорости сайта… Так что поэкспериментируйте.
Ссылки на ресурсы, на которых легко проверить результаты сжатия даны в прежней статье: ссылка выше!
Далее, чтобы включить
к оглавлению $ кэширование в браузере на стороне пользователя
Когда-то давным-давно… каждый файл, к примеру JS, сжимали вручную и помешали (сжатый файл) в соответствующие каталоги и подкаталоги своего сервера (сайта) — теперь, эта процедура вряд ли оправдана: многое из «сжатий» выполняется в автоматическом режиме — вот почему (ну, я так всегда рекомендую) целесообразно поработать с файлом .htaccess вкупе с плагином кэширования.
Для того чтобы перенапрвить (скажем так, чтение браузером нашего сайта) на сформированные gzip файлы — добавьте такие строки в файл .htaccess: (в комментариях последующих строк кода дано кое-какое описание)…
# Перенаправление на gzip файлы AddEncoding gzip .gz <FilesMatch "\.js.gz$"> ForceType text/javascript Header set Content-Encoding: gzip </FilesMatch> <FilesMatch "\.js$"> RewriteCond %{HTTP_USER_AGENT} !".*Safari.*" RewriteCond %{HTTP:Accept-Encoding} gzip RewriteCond %{REQUEST_FILENAME}.gz -f RewriteRule (.*)\.js$ $1\.js.gz [L] ForceType text/javascript </FilesMatch> <FilesMatch "\.css.gz$"> ForceType text/css Header set Content-Encoding: gzip </FilesMatch> <FilesMatch "\.css$"> RewriteCond %{HTTP_USER_AGENT} !".*Safari.*" RewriteCond %{HTTP:Accept-Encoding} gzip RewriteCond %{REQUEST_FILENAME}.gz -f RewriteRule (.*)\.css$ $1\.css.gz [L] ForceType text/css </FilesMatch> # Перенаправление на gzip файлы
к оглавлению $ как включить кэш в браузерах посетителей (пользователей)
Этот код запомните, возможно, при окончательном тестировании скоростей загрузки сайта, он вам не потребуется. Хотя на некоторых площадках я его устанавливаю.
# Включаем кэш в браузерах посетителей <ifModule mod_headers.c> # Отключаем кеширование php и других служебных файлов <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$"> Header unset Cache-Control </FilesMatch> </IfModule>
А вот это как раз подборка кода, для включения кэширования на стороне пользователя — отправляем команды обозревателям на кэширование наших картинок различных форматов: (попросту, чтобы ваш сайт открывался с более высокой скоростью — картинки ваших статей /документации/ будут храниться в КЭШ браузере пользователя, и при повторном открытии вашего сайта, эти фотки будут подхватываться из его кэш файла))
# кеширование в браузере на стороне пользователя <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access 7 days" ExpiresByType application/javascript "access plus 1 year" ExpiresByType text/javascript "access plus 1 year" ExpiresByType text/css "access plus 1 year" ExpiresByType text/html "access plus 7 day" ExpiresByType text/x-javascript "access 1 year" ExpiresByType image/gif "access plus 1 year" ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType image/jpg "access plus 1 year" ExpiresByType image/x-icon "access 1 year" ExpiresByType application/x-shockwave-flash "access 1 year" </IfModule> # Cache-Control <ifModule mod_headers.c> # 30 дней <filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$"> Header set Cache-Control "max-age=2592000, public" </filesMatch> # 30 дней <filesMatch "\.(css|js)$"> Header set Cache-Control "max-age=2592000, public" </filesMatch> # 2 дня <filesMatch "\.(xml|txt)$"> Header set Cache-Control "max-age=172800, public, must-revalidate" </filesMatch> # 1 день <filesMatch "\.(html|htm|php)$"> Header set Cache-Control "max-age=172800, private, must-revalidate" </filesMatch> </ifModule>
Этот код даю для примера!
#Запрет отдачи HTTP-заголовков Vary браузерам семейства MSIE <IfModule mod_setenvif.c> BrowserMatch "MSIE" force-no-vary BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary </IfModule> # кеширование в браузере на стороне пользователя
А этот код стоит добавить в ваш файл — общее усиление кэширования!
# использование кеша браузеров - Усиливаем кеширование FileETag MTime Size <ifmodule mod_expires.c> <filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$"> ExpiresActive on ExpiresDefault "access plus 1 year" </filesmatch> </ifmodule>
к оглавлению $ защита картинок сайта — хотлинк
Если хотите запретить использование (подгрузку — хотлинк) картинок с вашего сайта, то — стоит добавить нижеследующий код:
# ЗАПРЕТИМ использовать картинки на внешних сайтах RewriteEngine On RewriteCond %{HTTP_REFERER} !^https://(.+\.)?mihalica\.ru/ [NC] RewriteCond %{HTTP_REFERER} !^$ # /images/empty.jpg ВЫВОДИМ ДРУГОЕ изображение RewriteRule .*\.(jpe?g|gif|mp3|bmp|png)$ img/MIHALIKA.jpg [L]
Как это работает: Если где-то на стороннем сайте админ попытается использовать ваше изображение: попросту укажет URL на вашу картинку, которая станет подгружаться на его ресурс — это ему не удастся осуществить. Если обраганизуете показанный код, в этом случае будет подгружаться какая-то сторонняя картинка, к примеру, ваш логотип MIHALIKA.jpg или что-то другое.
Хотлинк всё-таки немного скрадывает мощностей вашего сервера.
Конечно же: не забудьте поменять имя домена и имя файла изображения.
к оглавлению $ защитим в .htaccess иные файлы сервера
Вот этот код тоже весьма полезен! Даже если используется какой-то плагин защиты, типа iThemes Security почитайте о том, как настроить этот плагин, используя в том числе и код показанный ниже. Возможные конфликты в дублирование функционала iThemes Security…
#Защищаем .htaccess файл <Files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </Files> #Защищаем xmlrpc.php <Files xmlrpc.php> order deny,allow deny from all </Files> # защита wp-config.php <files wp-config.php> order allow,deny deny from all </files> # Защищаем .htaccess файл # <files office-reception> # order allow,deny # deny from all # </files>
Как эпилог:
…в сети много информации, исследуя которую новички путаются… спрашивают: (хотя, думаю, после этого моего поста её будет ещё болше)) ну, да ладно…
к оглавлению $ как забанить определённый ip пользователя в htaccess
Вот чудодейственный код: пропишите его на постоянное место жительство в файл чтsssss…
# ЗАПРЕТ IP <Limit GET POST PUT> order allow,deny allow from all Deny from 80.248.225.168 Deny from 176.62... .... </LIMIT> # ЗАПРЕТ IP
Как понимаете, вам только потребуется прописать изложенный выше код и добавить ip адреса, которые вы решили забанить.
Deny from 80.248.225.168 — добавляете в код новую строку Deny from и прописыаете цифры — это и есть ip.
...город веб мастеров Михалика.ru - запросто с WordPress
Online консультация по работе c сайтом на WordPress
Благодарности)) и вопросы в комментариях - помогу… в чём дюжу А также Вы можете просто: Нажатия на кнопочки определяют Ваше высокое гражданское сознание SEO догматика защита сайта нужно знать создание сайта - начало ускоряем сайт htaccess - config.php mihalica.ru Как ускорить загрузку сайта, включить кеширование, GZIP сжатие .htaccessПосетители любят быстрые веб ресурсы. Поисковые системы также предпочитают сайты, которые быстро загружаются на компьютер пользователей, имеют меньший показатель отказов из-за низкой скорости загрузки. Проверить скорость загрузки сайта, обнаружить недоработки, замедляющие блог, нам поможет сервис Гугла PageSpeed. Нам не потребуется установка дополнительных программ, приложений или плагинов. Рассмотрим, как ускорить загрузку загрузку сайта WordPress, как включить кеширование и GZIP сжатие и отредактируем файл .htaccess. В сервисе PageSpeed введите адрес своего сайта, нажмите кнопку Анализировать. Проверка загрузки сайта google выявит ошибки и покажет их. Если вы увидите красный восклицательный знак включить сжатие, Срочно исправьте ошибки! Как включить GZIP сжатие css, js и htmlGZIP сжатие (архивирование, gZip compression) - это сжатие, упаковка в архив всех текстовых файлов на сервере сайта до передачи их на компьютер пользователя. В браузере пользователя сжатые страницы html, js,css распаковываются. В результате времени (и трафика) на передачу расходуется меньше. Команду Включить GZIP сжатие добавим в файл .htaccess. # compress text, html, javascript, css, xml: AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript # Or, compress certain file types by extension: SetOutputFilter DEFLATEФайл .htaccess где лежитФайл .htaccess находится в корневой папке вашего блога (только для веб-серверов под управлением Apache). Мой хостинг sprinthost как раз использует эту технологию. А ваш? При переносе вашего сайта на Sprinthost (промокод 6583) действует акция, предоставляются скидки. Напоминаю, перед внесением изменений сделайте бекап. Если работаете с файловым менеджером filezilla, ищите папку public_html. Файл .htaccess для подстраховки скопируйте к себе на компьютер. Если редактируете файл .htaccess прямо на хостинге sprinthost, путь такой: ПАНЕЛЬ УПРАВЛЕНИЯ на хостинге - ФАЙЛОВЫЙ МЕНЕДЖЕР - DOMIANS - ВАШ САЙТ - public_html - .htaccess - Edit. Откроется окно, содержимое надо скопировать файл в Блокнот или редактировать в текстовом редакторе Notepad. Отредактированный .htaccess скопируйте и вставьте обратно, затем изменения СОХРАНИТЕ. Где проверить GZIP сжатие сайта1. после включения gzip сжатия проверьте его работу в сервисе PageSpeed, увидите, что скорость загрузки сайта заметно увеличилась; 2. http: // www.gidnetwork.com/tools/gzip-test.php. Введите адрес своего блога и нажмите Check 3. http: // www.whatsmyip.org/http-compression-test/ Если GZIP сжатие на сервере вашего блога включить невозможно, обратитесь к сторонним сервисам, оказывающим эту услугу. Как еще можно ускорить загрузку сайта?Желтым восклицательным знаком обозначены показатели не критично влияющие на скорость загрузки страниц сайта. Но если можно их исправить, почему бы не сделать это прямо сейчас? Нажмите Learn more. У меня, например, не указан (или слишком мал) срок действия HTTP-заголовков. Что такое срок действия (жизни) кеша браузераКогда страница загружается на компьютер пользователя впервые, браузер поочередно выполняет загрузку всех ее элементов: графики, css-файлов, javascript. При переходе посетителя на следующую страницу вашего проекта в кеше (памяти) его браузера некоторые файлы сохраняются, например, изображения баннеров или графики в сайдбаре, картинка счетчика в футере и т.д. Это и позволяет экономить время, ускорить загрузку сайта. Но если читатель зашел на блог на следующий день – все начинается по-новой, так как для наших картинок, скриптов или других кешируемых ресурсов прописан короткий срок действия (или вовсе не обозначен). Так давайте его обозначим! Как увеличить срок жизни (действие) кеша браузера в htaccessСрок действия кеширования выставляют при помощи HTTP-заголовков (долгосрочных заголовков), которые вносят в файл .htaccess. Кеширование (запоминание) позволяют предотвратить непрерывные запросы браузера пользователя к не измененным ресурсам. Причем, команда включить кеширование браузеру пользователя отдается со стороны сервера (из файла .htaccess).Вносить будем следующий код <IfModule mod_expires.c> ExpiresActive On ExpiresByType application/javascript "access plus 7 days" ExpiresByType text/javascript "access plus 7 days" ExpiresByType text/css "access plus 7 days" ExpiresByType image/gif "access plus 7 days" ExpiresByType image/jpeg "access plus 7 days" ExpiresByType image/png "access plus 7 days" </IfModule>Где срок действия для объектов – это access plus 7 days. Иногда устанавливают более длительный срок access plus 1 month или даже access plus 1 years. Результат проверяем в сервисе PageSpeed. Ну что же, частично задача htaccess кэширования решена. Отчего еще зависит скорость загрузки сайта рассмотрим в следующих публикациях. P.S. Для тех, кто неуверенно чувствует себя в админпанели хостинга, есть плагин WP Htaccess Editor. Он выводит файл .htaccess в админпанель блога. Установите его и редактируйте файл .htaccess прямо из админпанели блога. Как проверить остальные параметры сайта, читайте здесь. moi-start.ru php - Как добавить кеширование кэширования для CDN в .htaccess?Что такое кеширование браузера? Кэширование браузера - это процесс хранения ранее запрошенных файлов в локальном кеше браузеров, чтобы уменьшить время загрузки. Когда файл хранится локально, требуется меньшее количество запросов для отправки на сервер, и для загрузки требуется меньше данных.
Для правильного использования кеширования браузера необходимо включить определенные компоненты. Например, вы должны убедиться, что вы указали механизм проверки кеша, чтобы помочь браузеру определить, может ли файл быть извлечен из локального кеша или если запрос должен быть сделан на сервере. Кроме того, вы должны правильно установить заголовки Expires или Cache-Control для своих активов. Использование обоих будет излишним. Кроме того, Gtmetrix предпочитает Expires over Cache-Control, поскольку он более широко поддерживается. Поэтому в этой статье основное внимание будет уделено использованию заголовков Expires при демонстрации того, как использовать кеширование браузера. Cache-Control Cache-Control позволяет нам немного контролировать кеширование браузера, и многие люди считают его проще использовать после установки. # 1 Year for most static assets <filesMatch ".(css|jpg|jpeg|png|gif|js|ico)$"> Header set Cache-Control "max-age=31536000, public" </filesMatch>Gzip Comporession (полезно для Magento) <ifModule mod_gzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file \.(html?|txt|css|js|php|pl|asp|html)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* </ifModule> <ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript </ifmodule>В зависимости от ваших файлов веб-сайта вы можете установить разные сроки истечения срока действия. Если некоторые типы файлов обновляются чаще, вы должны установить для них более раннее время истечения (т.е. файлы CSS). Откройте файл .htaccess. (будьте умны: сделайте копию своего исходного файла .htaccess, если вы случайно ошиблись и должны вернуться). Теперь пришло время включить модуль заголовков Expires в Apache (установите 'ExpiresActive на "On" ), поэтому добавьте его в ваш файл .htaccess: <IfModule mod_expires.c> # Enable expirations ExpiresActive On </IfModule>Возможно, было бы полезно добавить " Директива по умолчанию" для даты истечения срока действия по умолчанию, так что теперь вы добавите 2 строки: <IfModule mod_expires.c> # Enable expirations ExpiresActive On # Default directive ExpiresDefault "access plus 1 month" </IfModule>Это база. Теперь добавьте все строки для каждого из ваших типов файлов (знаете, те, которые вы создали ранее для favicon, изображений, CSS и Javascript). Вы получите фрагмент кода, который выглядит примерно так: <IfModule mod_expires.c> # Enable expirations ExpiresActive On # Default directive ExpiresDefault "access plus 1 month" # My favicon ExpiresByType image/x-icon "access plus 1 year" # Images ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" # CSS ExpiresByType text/css "access 1 month" # Javascript ExpiresByType application/javascript "access plus 1 year" </IfModule>Теперь запустите еще один тест с помощью GTmetrix и сравните результаты. Это результат для моего тестового сайта после реализации заголовков Expires: Рекомендации
Кэширование браузера с использованием плагина WordPress Общий кэш W3: Один из лучших плагинов кеширования со многими функциями, такими как кеширование, интеграция CDN (например, MaxCDN), что ускорит работу вашего сайта. Примечание
Вы заметили какие-либо улучшения для своего сайта? Вышеописанное позаботится обо всех ваших файлах, перечисленных в разделе " Использовать кеширование браузера" и " Добавить заголовки истечения срока действия"?. Сообщите мне в комментариях ниже. qaru.site Как настроить кэширование при помощи файла конфигураций htaccessНастройка файла htaccess — это не только возможность задать различные уровни доступа для файлов и папок, активировать преобразование ссылок, но и оптимизировать ваш ресурс, чтобы увеличить его юзабильность. В этом файле дополнительных конфигураций для серверов Apache и подобных им есть множество опций, которыми вы можете воспользоваться. И одна из них — это кэширование браузера пользователей, зашедших на сайт. Подробнее о том, как активировать кэш через htaccess вы узнаете в данной статье. Зачем использовать кэш браузера для своего сайтаДля начала стоит разобрать, что из себя представляет кэш. По сути, это временно сохраненная информация и файлы, к которым часто обращаются. То есть дополнительный буфер обмена, который использует не пользователь, а какие-либо службы или приложения. Например, кэш используют DNS-сервера, операционные системы, процессоры и браузеры. Наверняка вы слышали рекомендацию, вроде этой: «Используйте кэш браузера, чтобы ускорить работу сайта!». На самом деле работа сайта не будет ускорена за счет кэша. Кэширование — это процесс копирования данных в кэш. Различные браузеры хранят эти файлы в операционной системе компьютера в разных местах. Чтобы активировать кэш браузера, пользователю не нужно самостоятельно обращаться к папкам, где хранится буфер — это происходит автоматически. Обращение к кэшу работает быстрее, чем обработка внешних носителей, потому использование такого временного буфера — это хороший способ ускорить функционирование браузера. Суть в том, что кэш преимущественно полезен не для скорости работы сайта, а для ускорения браузера. Ведь человек, который впервые попал на страницы вашего веб-ресурса, не заметит какой-либо разницы, даже если кэширование будет отключено. А вот когда тот самый посетитель зайдет во второй раз на сайт, его браузер кое-что уже будет знать о сайте, и обратившись к кэшу, он загрузит ресурс куда быстрее, чем впервые. И это, несомненно, понравится посетителю! Юзабильность сайта — это важный фактор ранжирования. Кэш поможет улучшить пользовательский опыт на вашем веб-ресурсе. Рано или поздно, но это повлияет на позиции вашего сайта в поисковой выдаче. Как известно, чем быстрее работает ресурс, тем более лояльно к нему относятся поисковики. И пускай кэш не влияет напрямую на скорость ответа сервера, но ускорение браузера на вашем сайте — это в любом случае большой плюс для веб-ресурса. Настройка кэширования браузера при помощи файла htaccessЧтобы корректно и рационально настроить кэширование, недостаточно его просто включить. Используйте различные возможности директивы Cache Control для этого. Ведь нельзя добавить в кэширование все возможные файлы. Вам нужно кэшировать только те, которые редко редактируются. Ведь если браузер будет сохранять полную копию страницы, то пользователь не сможет увидеть новую информацию на сайте, так как веб-обозреватель вместо измененных файлов подгрузит старые их копии. Директива Cache Control в файле конфигураций htaccess позволяет включить кэширование на определенный период времени. Эта опция отправляет команду об активации кэша вместе с HTTP-заголовками страниц. Браузер, увидев команду Cache Control, выполняет ее. И если вы указали кэшировать страницу на 5 минут, то при обращении веб-обозревателя к скопированной странице через 6 минут, браузер загрузит данные с сервера заново и вновь их сохранит на 5 минут. К кэшируемым элементам можно отнести различные статичные файлы, которые постоянно находятся в каталогах страниц, и не меняются со временем. К примеру, это может быть дизайн страницы, ее логотип или какой-нибудь элемент, вроде картинки в посте. Нет смысла браузеру каждый раз загружать подобные файлы заново, потому стоит в директиве Cache Control файла htaccess включить загрузку кэша изображений и прочих подобных элементов. Важно указать правильный временной промежуток, во время которого кэш браузера будет храниться на компьютере пользователя. Максимальный отрезок времени определяет команда max-age директивы Cache Control. Этот период указывается в секундах без упоминания о единицах подсчета. То есть если вы хотите, чтобы кэш хранился один час, то следует в параметре max-age директивы Cache Control указать цифру 3600. Для одного дня указывайте 86400, для недели — 604800, для месяца — 2628000, для года — 31536000 и т. д. Но не стоит на все типы файлов указывать одинаковый период кэширования, иначе есть вероятность, что ваши нововведения на сайте никто не заметит — они не будут загружаться из-за старых копий файлов, которые находятся в кэше. Вместе с директивой Cache Control в файле htaccess также кроме максимального возраста кэша указывают доступ к кэшированию для разных групп: public, no-store или private. Опция public используется чаще всего. Она сообщает через директиву Cache Control, что кэширование может быть использовано любым пользователем с любым браузером. Именно эту опцию вам следует использовать в файле htaccess, если хотите ускорить работу своего сайта для всех посетителей. Если же вы планируете улучшить юзабильность веб-ресурса только для одного юзера на конкретной странице, то используйте опцию private. Подобный кэш использует социальная сеть Twitter, в которой страница пользователя для самого пользователя кэшируется, а для других посетителей — нет. И последняя опция no-store нужна для того, чтобы запретить какое-либо кэширования. Ее используют для онлайн-магазинов, где важно, чтобы пользователь видел свежую информацию, а не сохранял старую в браузер. Что касается настройки времени кэширования для разных типов файлов, то лучше для каждой группы данных прописать свой параметр max-age с директивой Cache Control. Вот основные группы файлов и рекомендации по времени их кэширования:
В целом, определение времени кэширования в директиве Cache Control — это ваше индивидуальное решение, поскольку разные вебмастера по-разному работают со своим сайтом. Учтите, что если вы добавили определенные типы файлов в кэш, а затем обновили их, то чтобы пользователи увидели обновление, необязательно отключать кэш — вы можете переименовать обновленный файл. После обновления имени файла браузер воспринимает его, как новый объект на сайте, который не занесен в кэш, и информация о ресурсе обновляется. Чтобы включить кэширование через файл htaccess, достаточно вписать в него специальный код. Самый простой пример такого кода — это: Header set Cache-Control «max-age=2628000, public». Данный код активирует кэш для всех типов файлов и для всех браузеров на период в 2628000 секунд. Но учтите, что такой кэш весьма не практичен, поскольку разные типы файлов требуют различного периода хранения в браузере. Потому рекомендуется включить в код еще одну директиву — FilesMatch. Чтобы добавить в список кэширования картинки через файл htaccess, вам следует прописать форматы изображений, которые вы используете на сайте между тегами FilesMatch. А посредине нужно будет указать стандартный код директивы Cache Control. Вот пример такого кода: <filesMatch ".(jpg|jpeg|png|gif|ico)$">Header set Cache-Control "max-age=31536000, public"</filesMatch> Указанные три строчки активируют кэширование картинок приведенных в скобках форматов для всех браузеров абсолютно всех пользователей ровно на 1 год. Подобные строки вам нужно написать и для прочих типов файлов, чтобы занести их в кэш с индивидуальным периодом хранения. Какие еще есть способы активировать кэширование через файл htaccessПомимо директивы Cache Control есть и другие опции, которые позволят вам включить кэширование для браузеров посетителей. Но при этом на вашем сервере должен быть активирован модуль mod _ expires. Этот модуль по аналогии с директивой Cache Control будет отправлять кэшируемые файлы вместе с HTTP-заголовками в браузеры пользователей. Директивы этого модуля стоит заключать между тегами в файле htaccess. В первую очередь, вам следует активировать модуль отправки кеша через заголовки при помощи строки ExpiresActive On. Уже после этого в другой строке при помощи специальной команды вы сможете указать период, который кэш будет храниться на устройствах посетителей. Сделать это можно при помощи директивы ExpiresDefault. В этой директиве можно указывать промежуток как в секундах, так и в других временных единицах. Вот как будет выглядеть указание периода кэширования в 1 день при помощи записи в секундах: ExpiresDefault A 86400. А это аналогичная запись, только в другом формате: ExpiresDefault » access plus 1 days «. Чтобы указать для различных типов файлов разные периоды кэша, вам следует использовать опцию ExpiresByType. После нее нужно будет прописать тип файла, а также их формат и период кэширования. Вот как выглядит активация кэша картинок с расширением gif на период в 2 месяца: ExpiresByType image/gif «access plus 2 months». Для текстовых файлов вместо image указывайте text, как и для скриптов и css-файлов. Для xml, html и прочих подобных расширений пишите application. Настройте таким образом кэширование для всех необходимых типов файлов. Похожие статьиe-webmaster.ru |
|
||||||||||||||||||||||||||||||||||||
|
|