2014-02-20 145 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上執行此操作? –