кэш набора управляет заголовком на основе типа контента в апаче

Мы пытаемся установить заголовок Управления Кэша: max-age=300, общественность ко всем нашим общедоступным страницам сайта. Для использования Filesmatch мои страницы приложения не имеют никаких расширений. ExpiresByType доступен, но он имеет свои собственные недостатки.

Я ищу способ установить заголовок управления кэшем на все мои страницы приложения с типом контента как текст/HTML. Там какой-либо путь состоит в том, чтобы достигнуть этого?

1
задан 18 June 2015 в 13:34
3 ответа

Браузеру не нужно видеть расширение .html, чтобы он знал, что это документ mime-типа text / html. Пока заголовок передает клиентскому браузеру, что документ действительно имеет тип mime text / html, это будет нормально:

ExpiresByType text/html "access plus 300 seconds"

Если вы уточните часть «имеет свои недостатки», мы, возможно, сможем прокомментировать это тоже.

1
ответ дан 3 December 2019 в 18:39

Так как вы не можете использовать mod_expires, может быть вы можете использовать вместо него заголовки mod_headers : http://httpd.apache.org/docs/2.2/mod/mod_headers.html.

Вы можете использовать filesMatch в сочетании с заголовком

<filesMatch "\\.(html|htm)$">
Header set Cache-Control "max-age=300, public"
</filesMatch>
0
ответ дан 3 December 2019 в 18:39

Более безопасный способ (поскольку разработчики могут ошибаться при установке Content-Type для расширений файлов) - установить заголовок на основе фактического Content-Type :

<IfModule mod_headers.c>
  Header set Cache-Control "max-age=300, public" "expr=%{CONTENT_TYPE} =~ m#text/html#i"
</IfModule>
2
ответ дан 3 December 2019 в 18:39

Теги

Похожие вопросы