我正在将 apache 请求代理到 s3,我想将响应标头重写为一个新制作的标头
这是我的配置:
SetEnvIf x-amz-meta-link "(.*)" DYN_CSS=$0
Header set Link "</static_assets/stylesheets/application-%{DYN_CSS}e.css>; rel=preload; as=stylesheet" env=DYN_CSS
s3 Header 配置为 x-amz-meta-link: css
我期望最终响应中的标题是
</static_assets/stylesheets/application-css.css>; rel=preloadas=stylesheet"
但我得到的是(空变量)
</static_assets/stylesheets/application-.css>;
我猜我不应该使用 setEnvIf 因为它引用了请求标头。
如何将代理服务器(S3)标头保存到环境变量?
答案1
假设您使用的是 2.4.10+ 版本,您可以简单地使用
"expr=..."
Header 指令的形式并使用%{resp:x-amz-meta-link}
来获取响应标头值
查看更多详情这里
SetEnvIf 仅读取请求标头,在响应标头可用之前运行,等等。