Apache - 将代理响应标头设置为环境变量

Apache - 将代理响应标头设置为环境变量

我正在将 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 仅读取请求标头,在响应标头可用之前运行,等等。

相关内容