根據 apache 的代理響應代碼添加標頭

根據 apache 的代理響應代碼添加標頭

我使用 Apache 2.2模組代理到某些第 3 方 HTTP 伺服器。

由於它不發送任何Cache-Control標頭,因此我想為回應代碼 200 添加 1 天,為 404 添加 5 分鐘,為任何其他回應代碼添加 0 之一。

所以我想要這樣的東西:

SetEnvIf HttpResponseCode "200" rc_200
SetEnvIf HttpResponseCode "404" rc_404

Header set "Cache-Control" "private, max-age=0"
Header set "Cache-Control" "public, max-age=86400" env=rc_404
Header set "Cache-Control" "public, max-age=86400" env=rc_200

答案1

我知道我的答案可能來得太晚了,但是對於任何想要根據條件(更具體地說是根據 HTTP 狀態代碼的條件)在 HTTP 回應中設定標頭的人來說,它可能很有用。

你可以找到這裡此類配置的範例(範例#8):

  1. 為 HTTP 狀態碼為 200 的回應附加快取標頭:
    Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"

它可以擴展為支援基於請求/回應環境變數的任何條件。

這個範例適用於 Apache httpd v2.4 :我懷疑它不適用於 httpd v2.2...

相關內容