如果缺少其他响应标头,我可以让 Apache 2.2 设置特定的响应标头吗

如果缺少其他响应标头,我可以让 Apache 2.2 设置特定的响应标头吗

我有一台运行 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

相关内容