根据 apache 的代理响应代码添加标头

根据 apache 的代理响应代码添加标头

我使用 Apache 2.2mod_proxy到一些第三方 HTTP 服务器。

由于它没有发送任何Cache-Control标题,我想为响应代码 200 添加 1 天,为 404 添加 5 分钟,为任何其他响应代码添加 0。

所以我会这样做:

SetEnvIf HttpResponseCode "200" rc_200
SetEnvIf HttpResponseCode "404" rc_404

Header set "Cache-Control" "private, max-age=0"
Header set "Cache-Control" "public, max-age=86400" env=rc_404
Header set "Cache-Control" "public, max-age=86400" env=rc_200

答案1

我知道我的回答可能来得太晚了,但对于任何想要根据条件(更具体地说是根据 HTTP 状态代码的条件)在 HTTP 响应中设置标头的人来说,它都是有用的。

你可以找到这里这种配置的一个示例(示例#8):

  1. 为 HTTP 状态代码为 200 的响应附加缓存标头:
    Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"

它可以扩展以支持基于请求/响应环境变量的任何条件。

此示例适用于 Apache httpd v2.4:我怀疑它不适用于 httpd v2.2...

相关内容