Я пытаюсь настроить кеширование на своем сайте Apache, начиная с базовой конфигурации, с помощью которой я могу протестировать PHP-скрипт в браузере:
CacheEnable disk /
CacheRoot /var/www/cache
CacheDefaultExpire 3600
CacheMinExpire 3600
CacheIgnoreNoLastMod On
CacheIgnoreCacheControl On
Однако это работает только в том случае, если страница каким-либо образом не «перенаправлена». Например, я тестирую этот простой скрипт PHP в корневом каталоге под названием «test.php»:
<?php
echo date('h:i:s');
?>
Если я перейду к «... / test.php» в моем браузере, это сработает: время вывода не изменится после первого посещения.
Если я перейду к «... / test», это не сработает: вывод всегда меняется на текущее время.
Два примечания:
Любые идеи? Спасибо!
Обычно вам необходимо правильно настроить заголовки кеширования, чтобы кеширование страниц работало. Есть хорошая статья Вот, и документы Apache Вот.
Подводя итог этой статьи, вы хотите установить заголовок Cache-Control. Вы можете установить etag, но с остальным, как с прагмой, не стоит возиться.
Cache-Control: max-age=86400
В Apache это делается с помощью mod_expires, который был бы настроен примерно так.
# enable expirations
ExpiresActive On
# expire GIF images after a month in the client's cache
ExpiresByType image/gif A2592000
# HTML documents are good for a week from the
# time they were changed
ExpiresByType text/html M604800