
我使用 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):
- 為 HTTP 狀態碼為 200 的回應附加快取標頭:
Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"
它可以擴展為支援基於請求/回應環境變數的任何條件。
這個範例適用於 Apache httpd v2.4 :我懷疑它不適用於 httpd v2.2...