Hallo zusammen
Ich habe mir nun das Handbook von Apache und Tipps in Online Foren durchgelesen. Aber leider verstehe ich das so garnicht.
https://httpd.apache.org/docs/current/mod/mod_headers.html
Das optionale Argument condition bestimmt, mit welcher internen Tabelle von Antwort-Headern diese Direktive arbeitet: onsuccess (Standard, kann weggelassen werden) oder always. Der Unterschied zwischen den beiden Listen besteht darin, dass die Kopfzeilen, die in der letzteren enthalten sind, der Antwort auch im Fehlerfall hinzugefügt werden und über interne Umleitungen hinweg bestehen bleiben (z.B. ErrorDocument-Handler). Beachten Sie auch, dass die Wiederholung dieser Direktive mit beiden Bedingungen in einigen Szenarien sinnvoll ist, weil always keine Obermenge von onsuccess in Bezug auf bestehende Header ist:
Sie fügen eine Kopfzeile zu einer lokal erzeugten Nicht-Erfolgsantwort (nicht 2xx) hinzu, wie z. B. einer Weiterleitung. In diesem Fall wird nur die Tabelle, die always entspricht, in der endgültigen Antwort verwendet.
Sie ändern oder entfernen einen Header, der von einem CGI-Skript oder von mod_proxy_fcgi erzeugt wurde. In diesem Fall befinden sich die Header des CGI-Skripts in der Tabelle, die always entspricht, und nicht in der Standardtabelle.
Sie ändern oder entfernen einen Header, der von einem Teil des Servers generiert wurde, aber dieser Header wird von der standardmäßigen onsuccess-Bedingung nicht gefunden.
Aktuell habe ich in meiner .htaccess unter anderem folgendes
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Jetzt gibt es seitens Apache die Angabe, dass sich "always" auf andere Tabellen bezieht. Nämlich auch auf fehlerhafte Anfragen bzw. Ausgaben, wie es bei Fehlern im Bereich Error 5xx vorkommt.
Ich verstehe das so einfach gar nicht, im Internet ist voll das Chaos. Vielleicht können wir das hier klären und mit den Mythen aufräumen.
Wäre es dann nicht intelligenter einfach folgendes in die htacces zu schreiben
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
und zusätzlich
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Aktuell habe ich bei allen Einträgen des Header die Angabe
always
Kann mir das bitte jemand anschaulich für einen DAU erklären? Danke ☺