Get Apache 2.2 to set a particular response header if some other response header is missing

apache-2.2http-headersmod-proxy

I have an Apache 2.2 server running mod_proxy. We had a scenario where a response came through from the origin corrupted, it didn't have any content-type or cache-control headers. This meant that downstream proxies and clients cached the dodgy response.

What I would like to do is if the response doesn't have a content-type and cache-control header to insert a Cache-Control:max-age=0, no-cache header

Best Answer

I think to do this in Apache, you'd need to be running 2.4. mod_headers is the normal means of manipulating response headers, and it's not flexible enough to do what you want.

In 2.4, something like this should work:

<If "-z resp('Cache-Control') && -z resp('Content-Type')">
    Header set Cache-Control "max-age=0, no-cache"
</If>