Я пытаюсь настроить кеширование на своем сайте 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» в моем браузере, он сработает: время вывода не работает. t изменится после первого посещения.
Если я перейду к "... / 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