
Ich verwende Apache 2.2 mitmod_proxyzu einem HTTP-Server eines Drittanbieters.
Da kein Cache-Control
Header gesendet wird, möchte ich für den Antwortcode 200 einen Tag, für 404 5 Minuten und für jeden anderen Antwortcode 0 hinzufügen.
Also ich würde so etwas sagen wie:
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
Antwort1
Ich weiß, dass meine Antwort wahrscheinlich zu spät kommt, aber sie kann für jeden nützlich sein, der einen Header in einer HTTP-Antwort basierend auf einer Bedingung festlegen möchte, und genauer gesagt basierend auf einer Bedingung des HTTP-Statuscodes.
Sie findenHierein Beispiel für eine solche Konfiguration (Beispiel Nr. 8):
- Fügen Sie einen Caching-Header für Antworten mit einem HTTP-Statuscode von 200 an:
Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"
Es kann erweitert werden, um alle auf Anforderungs-/Antwortumgebungsvariablen basierenden Bedingungen zu unterstützen.
Dieses Beispiel funktioniert für Apache httpd v2.4: Ich vermute, dass es für httpd v2.2 nicht funktioniert …