Fügen Sie einen Header hinzu, der vom geproxieden Antwortcode mit Apache abhängt

Fügen Sie einen Header hinzu, der vom geproxieden Antwortcode mit Apache abhängt

Ich verwende Apache 2.2 mitmod_proxyzu einem HTTP-Server eines Drittanbieters.

Da kein Cache-ControlHeader 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):

  1. 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 …

verwandte Informationen