This page is hosted for free by zzz.com.ua, if you are owner of this page, you can remove this message and gain access to many additional features by upgrading your hosting to PRO or VIP for just 32.50 UAH.

Веб мастер - .htaccess

Не работает? Начинай читать инструкцию.

Как запретить кешировать файлы сайта на стороне браузера пользователя

Недавно столкнулся с тем, что при замене файлов на сервере, пользователи сайта утверждают, что открываются старые файлы из кеша браузера. Поэтому вопрос: как запретить кешировать файлы сайта на стороне пользователя ?

Предлагаю ознакомиться с предложениями моих партнёров

В данном случае для запрета кэширования нам поможет файл .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>

Можно установить время кеширования на стороне пользователя, например обновлять кэш у пользователя будет 1 раз в час

# Разрешение кеширования
# Необходимо включение модулей
# mod_headers.c и mod_expires.c
 
# Заголовок Cache-Control
<IfModule mod_headers.c>
    Header append Cache-Control "public"
</IfModule>
 
# Заголовок Expires
<IfModule mod_expires.c>
    ExpiresActive On ExpiresDefault "access plus 1 hours"
</IfModule>

Чуть не забыл,в конфиге Апача надо убедиться, что следующие модули включены, раскомментируйте их, если они закомментированы

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

 На всякий случай напишу как запретить кеш на php

<?php
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Expires: " . date("r"));
echo "<h1>", date("H:i:s"), "</h1>";
?>

Разрешить кэш на 1 час при помощи PHP:

<?php
header("Cache-Control: public");
header("Expires: " . date("r", time() + 3600));
echo "<h1>", date("H:i:s"), "</h1>";
?>

Предлагаю ознакомиться с предложениями моих партнёров