Я использую .htaccess для кэширования файлов js / css / etc на сайте. Все работает нормально, но по некоторым причинам мои страницы тоже кэшируются. Я посмотрел в заголовки, и это работает так:
- Браузер запрашивает страницу http://poko.lt/up
- Сервер отвечает с 301 до http://poko.lt/up/ (с заголовками Дата и Последнее изменение, равными текущему времени)
- Браузерные запросы http://poko.lt/up/
- Сервер отвечает страницей и заголовками «Дата» и «Последнее изменение», равными моему последнему принудительному обновлению (например, вчера), но заголовок Cache-control в порядке (max-age = 0)
- Я получаю старую версию страницы: /
Мой .htaccess выглядит так:
# Turn on Expires and set default to 0
ExpiresActive On
ExpiresDefault A0
# 1 YEAR
<FilesMatch "\.(jpg|jpeg|png|gif|svg|eot|ttc|ttf|otf)$">
ExpiresDefault A29030400
Header append Cache-Control "public"
Header unset Last-Modified
Header unset ETag
FileETag None
</FilesMatch>
# 2 WEEKS
<FilesMatch "\.(css|js|swf)$">
ExpiresDefault A1209600
Header append Cache-Control "proxy-revalidate"
Header unset Last-Modified
Header unset ETag
FileETag None
</FilesMatch>
# NO CACHE
<FilesMatch "\/$">
ExpiresDefault A0
Header append Cache-Control "proxy-revalidate"
Header unset Last-Modified
Header unset ETag
FileETag None
</FilesMatch>
И его можно протестировать на веб-сайте http://poko.lt (три красных значка в верхней средней части страницы - те, которые вызывают проблемы). Я использую FF4 и проверяю заголовки с помощью Firebug.