Столкнулся с кэшированием и узнал, что запрет кэширования методом в Wikipedia не работает. Вот этот метод:
Запретить кэширование на PHP:
<?php /* ** Правильный запрет кэширования на PHP */ header("Cache-Control: no-store, no-cache, must-revalidate"); header("Expires: " . date("r")); echo "<h1>", date("H:i:s"), "</h1>"; ?> |
1) Зайти в конфиг Апача и убедиться, что следующие модули включены. Если они закомментированы, то раскомментируйте их:
LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so ... AddModule mod_expires.c AddModule mod_headers.c |
# Запрещение кеширования # Необходимо включение модулей # 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 час при помощи PHP:
<?php /* ** Включение кэширования на 1 час */ header("Cache-Control: public"); header("Expires: " . date("r", time() + 3600)); echo "<h1>", date("H:i:s"), "</h1>"; ?> |
1) Убеждаемся, что нужные модули mod_headers.c и mod_expires.c включены (как было описано выше).
2) В нужной папке создаем файл .htaccess и прописываем следующие строки:
# Разрешение кеширования # Необходимо включение модулей # 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>