Estamos tentando definir o cabeçalho Cache-Control: max-age=300, public para todas as páginas públicas do site. Para usar o Filesmatch, minhas páginas de aplicativos não possuem extensões. ExpiresByType está disponível, mas tem suas próprias desvantagens.
Estou procurando uma maneira de definir o cabeçalho de controle de cache para todas as páginas do meu aplicativo com tipo de conteúdo como texto/html. Existe alguma maneira de conseguir isso?
Responder1
Uma maneira mais segura (porque os desenvolvedores podem cometer erros ao definir Content-Type
extensões de arquivo) é definir o cabeçalho com base no real Content-Type
:
<IfModule mod_headers.c>
Header set Cache-Control "max-age=300, public" "expr=%{CONTENT_TYPE} =~ m#text/html#i"
</IfModule>
Responder2
O navegador não precisa ver uma extensão .html para saber que é um documento do tipo text/html mime. Contanto que o cabeçalho transmita ao navegador do cliente que o documento é de fato do tipo mime text/html, isso funcionará perfeitamente:
ExpiresByType text/html "access plus 300 seconds"
Se você elaborar a parte "tem suas próprias desvantagens", talvez possamos comentar sobre isso também.
Responder3
Como você não pode usar mod_expires, talvez você possa usar mod_headers:http://httpd.apache.org/docs/2.2/mod/mod_headers.html.
Você pode usar o filesMatch combinado com o cabeçalho
<filesMatch "\\.(html|htm)$">
Header set Cache-Control "max-age=300, public"
</filesMatch>