Настройка кэширования через файл .htaccess

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

Ускорить загрузку Вашего сайта можно с помощью кэширования. Для решения этой задачи Вы можете воспользоваться модулем headers веб-сервера Apache. Он позволяет контролировать и изменять заголовки HTTP-запросов и HTTP-ответов. Вся суть в этом случае сводится к тому, что бы заставить браузер загрузить редко-изменяемые данные с сервера в локальный кэш всего один раз, а далее, при заходе на сайт, использовать данные из кэша. Можно установить кэширование для определенных типов файлов на строго определенное время, по истечению которого файлы будут загружены с сервера вновь. Делается это достаточно просто:

Для файлов с указанными расширениями в конструкции FilesMatch устанавливается отдаваемый сервером заголовок Cache-Control и переменная max-age , в которой указывается время сохранения файлов в кеше в секундах. Добавьте или удалите расширения файлов, которые для Вас будут уместны в данном случае.

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

Как видно, здесь указаны расширения файлов, которые не требуется кэшировать, просто укажите требуемые типы файлов.

Еще одни способ управлять кэшированием — это воспользоваться модулем expires. Этот модуль контролирует установку HTTP-заголовков для кэширования данных на стороне браузера. Продолжительность хранения данных в кэше может быть установлена по времени, по последнему изменению файла или по времени доступа клиента.

Ниже представлен простой пример использования модуля expires в файле .htaccess:

В этом примере мы включаем модуль, устанавливаем кэширование по умолчанию на 1 месяц, а далее назначаем для файлов с расширением gif и jpg врема хранения в кэше plus 2 months . Время можно указать в годах, месяцах, неделях, днях, часах, минутах, секундах. В том числе можно использовать вариант вида:

В качестве типов файлов можно указывать различные MIME types , вот некоторые из них в качестве примера:

Включаем кеш браузера для Google PageSpeed


Представляем полезную статью «Включаем кеш браузера для Google PageSpeed», чтобы оптимизировать сайт по совету инструмента от Google PageSpeed Insights. Каждый владелец сайта сталкивался с проблемой сложности закешировать js скрипты сторонних DLE сайтов.

Это не такой важный показатель для оптимизации, по сути происходит перенос из шапки сайта CSS и JS элементы в футер, к тому, если посмотреть на ресурсы Google с этим пунктом у них проблемы 🙂

Если вам всё таки захочется оптимизировать сайт или вашим клиентам методом кеширования сторонних скриптов, к примеру. наблюдать красивую цифру на счетчике в анализаторе, то достаточно выполнить действия ниже на которые уйдет несколько минут.

Смотрите так же:  Отдых в ялте проживание

Кеш браузера своих элементов

Делаем кеш для разных скриптов, пример взят с блога Devaka ru (на момент написания статьи)
К примеру :

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

Далее выполняем проверку вашей площадки в инструменте Page Speed и если все хорошо, то останутся ссылки на яндекс.метрику, аналитику, социальные сети и т.д.

Примеры сторонних скриптов

Если в первом шаге, все сделали верно, должны увидеть примерно такой список:

Используйте кеш браузера для следующих ресурсов

У вас конечно, может быть всего несколько URL на метрику и аналитику например, но это не столь важно, инструкция исправления одинаков для всех.

Кеш сторонних элементов

Изначально статья должна была быть посвящена только этим пунктам, однако чувствуя, что будет много вопросов было добавлено ещё пару пунктов.

Повлиять на время кеша стороннего ресурса никак нельзя, но можно сделать на своем веб-проекте Самый правильных ход в этой ситуации, скачивать автоматически свежие скрипты метрики, аналитики и т.д. к себе на сайт с помощью крона (скрипт присутствует)

Давайте теперь по порядку!
Шаг 1. Скопируем список всех скриптов на которые указывает Google PageSpeed в блокнот или прямо с браузера.
Шаг 2. Создайте файл на хостинге с расширением php и вставляем в него следующий код:

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

В этой строке меняем 3 значение:
Используйте кеш браузера для Google PageSpeed
1. Скрипт который будем закачивать к себе на сайт

2. Путь куда сохранять файл:

В этом примере это папка js, т.е. точный путь будет www.dle9.com/js/ (папку нужно создавать самим и выставить для неё права CHMOD для записи)

3. Имя скрипта, если с расширением .js, то пишем вместе с ним, если без него или с другим, то делаем все так как в примере выше. Обращайте внимание, чтобы не было файлов с одинаковыми названиями.

Шаг 3. Заливаем отредактированный файл на сервер

И переходим по прямой ссылке, например http://www.dle9.com/downloadjs.php, если все сделали правильно, в папке JS (или какую вы указали в файле), будет лежать нужный файл/файлы.
Используем кеш браузера для Google PageSpeed

Шаг 4. Ставим файл на крон для автоматического обновления файлов

Для того чтобы избежать некорректной работы с сервисами, если они внесут изменения в скрипты, крон будет автоматически заходить и обновлять их у себя на сервере.

Заходите к себе в хостинг панель и выбираете вкладку CRON и прописываете команду, а также указываем время раз в час/сутки или любое другое время.

Не забываем сменить URL и возможно синтаксис команды у вас будет другой, посмотрите примеры cron команд в справке хостинга или утоните в тех.поддержке.

Шаг 5. Меняем путь к JS в счетчике или скрипте

Смотрите так же:  Получить гражданство по переселению

Если был путь в счетчике https://mc.yandex.ru/metrika/watch.js, то заменяем его на путь внутри сайта, например http://www.dle9.com/js/watch.js

Вот и все, теперь в списке PageSpeed Insights у вас не должно быть сообщений о настройке кеша браузера.

Скачать » включаем кеш браузера для Google PageSpeed » инструкцию в архиве

Официальный форум поддержки Simpla

Как задать срок кэширования CSS, JS ?

Milkikilki 07.12.2017

Здравствуйте, как задать срок кэширования CSS и JS, которые указывает сервис от google в рекомендациях по оптимизации? На стороне сервера кэширование включено.

Используйте кеш браузера

1. Файл 1.css (не указан срок действия)

2. Файл 2.js (не указан срок действия)

Изменено: Milkikilki, 07.12.2017 — 11:15

Как указать срок действия кеша

Добрый день!
PageSpeed Insights советует: используйте кеш браузера для.

Кое-что из рекомендаций получилось осуществить, используя в файле .htaccess вот это:

ExpiresActive On
ExpiresByType application/javascript «access plus 7 days»
ExpiresByType text/javascript «access plus 7 days»
ExpiresByType application/x-javascript «access plus 7 days»
ExpiresByType text/css «access plus 7 days»
ExpiresByType image/gif «access plus 3 days»
ExpiresByType image/jpg «access plus 2 days»
ExpiresByType image/png «access plus 7 days»

А как указать срок действия превьюшек? Вот этой, например:

Лучше так и надёжнее:

Header append Cache-Control «public»

# 30 дней

Header set Cache-Control «max-age=2592000, public»

# 30 дней

Header set Cache-Control «max-age=2592000, public»

# 1 день

Header set Cache-Control «max-age=172800, private, must-revalidate»

Google рекомендует использовать кэш браузера.

И дальше список из картинок, скриптов, css..

Подскажите оптимальный способ для этого.

Добавлено через 23 часа 59 минут
Нашел рабочий вариант через .htaccess

FileETag MTime Size

ExpiresActive on
ExpiresDefault «access plus 7 day»

BrowserMatch «MSIE» force-no-vary
BrowserMatch «Mozilla/4.[0-9]<2>» force-no-vary

Новый вопрос возник.
При обновлении сайта как дать понять браузеру что бы тот скачал обновленную версию?

Пока нашел два варианта.
Указать дату устаревания.

Гугл пишет надо использовать кэш браузера
Здравствуйте. Гугл пишет надо использовать кэш браузера, но у меня с ним никак.

Короткие ссылки в строке браузера
как это вообще реализовать? допустим есть ссылка site/cat.php?id=15 а что бы в.

Перенаправление в зависимости от браузера .htaccess
Пол интернета перекрыл так ничего внятного не нашёл. Во общем, ситуация такова.

Стоит ли делать? >
# кеширование в браузере на стороне пользователя <IfModule mod_expires.c>.

убрать .php с адресной строки браузера htaccess
Здравствующие. Много информации пересмотрел в интернете и не получается в.

Это не я указал, этот пример я нашел в нете.

Стили существуют конечно. Я их иногда подкручиваю как все остальное, пока есть новые идеи. Как кэшировать я уже нашел но вот как дать понять браузеру что его кэш устарел пока не знаю.
Вариант с указанием версии мне нравится но указывать его для каждого CSS или скрипта муторно.
Вариант с датой не идеален. Если я поставлю старую дату то все посетители вынуждены будут скачивать новую версию. А если новую то они все решат что кэш еще актуален и никто не станет скачивать по новой.

Смотрите так же:  Договор о совместной деятельности без объединения вкладов

Как включить кэш браузера? В joomla?

Всем привет! Google PageSpeed гласит мне — Используйте кеш браузера
Если указывать в заголовках HTTP дату или срок действия статических ресурсов, браузер будет загружать уже полученные ранее ресурсы с локального диска, а не из Интернета.

Как включить этот кэш для Apache? Сколько раз не пробовал видоизменять htaccess — без толку. Кто может помочь?

  • Вопрос задан более трёх лет назад
  • 1952 просмотра

Попробуйте добавить в htaccess:

# BEGIN Compress text files

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript

# END Compress text files

# BEGIN Expire headers

ExpiresActive On
ExpiresDefault «access plus 5 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/javascript «access plus 216000 seconds»
ExpiresByType application/x-javascript «access plus 216000 seconds»
ExpiresByType text/html «access plus 600 seconds»
ExpiresByType application/xhtml+xml «access plus 600 seconds»

# END Expire headers

# BEGIN Cache-Control Headers

Header set Cache-Control «public»

Header set Cache-Control «public»

Header set Cache-Control «private»

Header set Cache-Control «private, must-revalidate»

Header append Vary: Accept-Encoding

Header set Cache-Control «max-age=43200»

Header set Cache-Control «max-age=604800»

Header set Cache-Control «max-age=2592000»

Header unset Cache-Control

# END Cache-Control Headers

# BEGIN Turn ETags Off
FileETag None
# END Turn ETags Off

Другие публикации:

  • Быстров а материнский капитал Список литературы Аузан А.А. Экономические основания гражданских институтов (Доступ: http// www.polit.ru/ lectures/2004/05/19/auzan.html) Быстров А.А. Материнский капитал: стимулирование рождаемости? // Социологические исследования. […]
  • Исковое заявление об узаконивании перепланировки квартиры Исковое заявление об узаконивании перепланировки квартиры Автострахование Жилищные споры Земельные споры Административное право Участие в долевом строительстве Семейные споры Гражданское право, ГК РФ Защита прав […]
  • Льготы для инвалидов 2 группы по оплате коммунальных услуг Как и в каком размере предоставляются льготы по оплате коммунальных услуг для инвалидов Часто в жизни люди оказываются в сложных ситуациях из-за проблем со своим здоровьем или здоровьем своих близких. Многие теряются, не знают, кто и как […]
  • Льготы педагогам в городе Льготы учителям Многих интересует, какие льготы у учителей на сегодняшний день, и почему именно учителям они предоставляются. Профессия педагога очень ответственная и требующая большого количества затрат – как временных, так и […]
  • Как оформить повышение квалификации в другом городе Повышение квалификации работника в другом городе Уважаемые коллеги, может у кого-то был опыт направления сотрудника в другой город для повышения квалификации. Вопрос вот в чем: отправляем инженера в Москву, заключаем с ней дополнительный […]
  • Приказ 10 25 мвд Приказ МВД РФ от 23 апреля 2012 г. N 348 "Об утверждении Административного регламента Министерства внутренних дел Российской Федерации по предоставлению государственной услуги по выдаче гражданину Российской Федерации лицензии на […]
Как указать срок действия кеша