2014-02-20 98 views
7

有没有一种方法可以有条件地设置新的响应头,其中条件使用另一个响应头?具体而言,只有响应具有特定的Content-Type时,才应设置新的响应头。Apache httpd:根据其他*响应*标头有条件地设置响应头

我已经看过mod_headersmod_setenvif的组合,但它看起来像条件​​只能使用请求标题,而不是响应标题。

谢谢,约翰

+0

我有同样的问题,但现在我被困在与Apache-2.2。对此的解决方案会很好。 – sastorsl

回答

5

的Apache 2.4是答案:

设置Cache-Control头时,响应内容类型是application/PDF

Header set Cache-Control "no-store,no-transform" "expr=%{resp:Content-Type} =~ m|application/pdf|"

不与IF指令尝试。它在评估过程中过早。例如,以下将不起作用:

<If "%{resp:Content-Type} =~ m|application/pdf|"> Header set Cache-Control "no-store, no-transform" </If>

+0

mod_headers的文档声明'expr = value在2.4.10和更高版本中可用。是否有另一种方法在Apache <= 2.4.6上执行此操作? –