通过 htaccess 设置缓存 header

Setting cache header via htaccess

我正在通过 htaccess 设置缓存指令。代码:

#team pages
RewriteCond %{REQUEST_URI} !(inc|out\.|admin) [NC]
Header set Cache-Control "max-age=604801, public"
RewriteRule ^([a-z\-]+)(/([a-z_]+))?/?$ team.php?team=&res_type= [QSA]

我在 www.web-sniffer.net 上测试过这个 header 输出很奇怪:

问题: 为什么 cache-control 显然有两个读数?哪个占上风?底部的是预期的那个。我还应该设置 Pragma 缓存吗?

有条件地设置header:

RewriteCond %{REQUEST_URI} !(inc|out\.|admin) [NC]
RewriteRule ^([a-z\-]+)(/([a-z_]+))?/?$ index.php?team=&res_type= [L,QSA,E=cc:1]

Header set Cache-Control "max-age=604801, public" env=REDIRECT_cc

PS: 我们需要在环境变量 cc 之前使用 REDIRECT_ 前缀,因为 mod_rewrite 为每个变量添加了这个前缀每次重写循环迭代结束时的 env 变量。