Set cache control header based on content type in apache

apache-2.2mod-cache

We are trying to set Cache-Control header: max-age=300, public to all our public site pages. To use Filesmatch, my applciation pages do not have any extensions. ExpiresByType is available, but it has its own disadvantages.

I am looking for a way to set cache control header to all my application pages with content type as text/html. Is there any way to achieve this?

Best Answer

A safer way (because developers can make misstakes when setting Content-Type for file extensions) is to set header based on the actual Content-Type:

<IfModule mod_headers.c>
  Header set Cache-Control "max-age=300, public" "expr=%{CONTENT_TYPE} =~ m#text/html#i"
</IfModule>