Проблема с кешированием htaccess 'Header unset Last-Modified'

Я пытаюсь настроить некоторые параметры управления кешем в моем файле htaccess.

На данный момент это выглядит так:

<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico|swf|css|js|html|pdf)$">
Header set Cache-Control "max-age=2592000, public, must-revalidate"
Header unset ETag
FileETag None
</FilesMatch>

Однако я читал (и хотел добавить) Header unset Last-Modified, поэтому это будет примерно так:

<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico|swf|css|js|html|pdf)$">
Header set Cache-Control "max-age=2592000, public, must-revalidate"
Header unset Last-Modified
Header unset ETag
FileETag None
</FilesMatch>

Однако использование этого (согласно Firebug) вообще ничего не загружает из кеша (тогда как первый метод загружает все)

Я делаю что-то неправильно? Синтаксис кажется правильным.

A.


person Adi    schedule 30.03.2010    source источник


Ответы (2)


Синтаксис правильный, а вот использование - нет. Согласно «Советы по ускорению: удаление последнего измененного заголовка», найденные здесь: http://www.askapache.com/htaccess/apache-speed-last-modified.html

Если вы удалите заголовки Last-Modified и ETag, вы полностью исключите запросы If-Modified-Since и If-None-Match и их 304 Not Modified Responses, поэтому файл останется кэшированным без проверки обновлений до тех пор, пока заголовок Expires не укажет новый контент доступен!

Также:

Удалив заголовки ETag и Last-Modified из ваших статических файлов (изображений, javascript, css), браузеры и кеши не смогут проверить кешированную версию файла по сравнению с реальной версией. Также включив заголовок Cache-Control и заголовок Expires, вы можете указать, что определенные файлы будут кэшироваться в течение определенного периода времени, и вы волшебным образом (это действительно уникальный трюк, который я обещаю) устраните любые запросы проверки !!

Обратитесь к исходной ссылке для получения более подробной информации.

person Omranic    schedule 18.09.2010
comment
Заголовок Expires просто указывает на то, что срок действия содержимого истек, но это не означает, что содержимое действительно было изменено. Удаляя заголовок Last-Modified, вы заставляете кеш повторно запрашивать файл, даже если был бы предоставлен ответ 304. - person JimmyPena; 13.09.2013

Один вариант использования для удаления Last-Modified - это если ресурс использует новую директиву cache-control: immutable, которая указывает кешам, что ресурс никогда не изменится (например, при управлении версиями файлов с помощью хешей). Микрооптимизации ...

person Null    schedule 16.07.2018