从mod_rewrite获取mod_headers中的环境变量

时间:2017-12-01 06:43:53

标签: apache mod-rewrite environment-variables apache2.4 mod-headers

我正在尝试根据环境变量发送标头,并根据我应该使用env条件的文档。

然而它不起作用。这是我的服务器配置:

RewriteRule ([^\[]+)(?:\[immutable\].)js$ $1.js [NC,QSA,L,E=immutable]

Header set Cache-Control "immutable, no-transform, public, max-age=31536000" env=immutable

我已经确认,如果我删除env=immutable,则标题会发送所有回复。

预期结果是:

  • foo.immutable.js应使用Cache-Control标头
  • 投放foo.js
  • foo.js也应该提供foo.js但没有Cache-Control标头

关于它为什么不起作用或是否有办法在ssl_access_log中转储环境以进行调试的任何想法?

1 个答案:

答案 0 :(得分:0)

尝试检查REDIRECT_immutable

由于您实际进行了替换,并且您的Rewrite似乎位于每个目录上下文中,因此会发生内部重定向。因此,当mod_headers实际运行在最终URL的内部重定向上时,您的envvar将重命名为REDIRECT_immutable。