我有一台运行 mod_proxy 的 Apache 2.2 服务器。我们遇到过这样的情况:来自损坏的源的响应没有任何内容类型或缓存控制标头。这意味着下游代理和客户端缓存了可疑的响应。
我想做的是,如果响应没有内容类型和缓存控制标头,则插入Cache-Control:max-age=0, no-cache
标头
答案1
我认为要在 Apache 中执行此操作,您需要运行 2.4。 mod_headers
是操作响应头的正常方式,但它不够灵活,无法完成您想要的操作。
在 2.4 中,类似这样的操作应该可以工作:
<If "-z resp('Cache-Control') && -z resp('Content-Type')">
Header set Cache-Control "max-age=0, no-cache"
</If>
答案2
来自重写条件手册,我还没有测试过,但似乎你可以做类似的事情:
RewriteCond %{HTTP:Cache-Control} ^$ [AND]
RewriteCond %{HTTP:Content-Type} ^$
Header add Cache-Control:max-age=0, no-cache