Bitte beachten Sie einen seltsamen Fehler in Apache 2.2 (beobachtet in Apache 2.2.15), der dies schwierig macht, wenn Sie env=HTTPS
verwenden, um zu steuern, wann der Header gesetzt wird. Aus irgendeinem Grund kann env=HTTPS
während Umleitungen nicht ausgelöst werden, auch wenn RewriteCond %{HTTPS}
on verwendet wird, um die Umleitung zu steuern. Also in meiner Konfiguration, die HTTP Strict Transport Security (HSTS) ermöglicht, verwende ich eine RewriteRule verwenden, um eine Umgebungsvariable zu erstellen X_HTTPS
genannt, die den gleichen Wert wie die HTTPS
hat, die aber nicht auf null gesetzt, wenn env=X_HTTPS
ausgewertet wird:
SetEnv HSTS "max-age=31536000; includeSubDomains; preload"
# For some reason in Apache 2.2, HTTPS env variable is not available during redirects
RewriteCond %{HTTPS} on
RewriteRule ^.*$ - [ENV=X_HTTPS:%{HTTPS}]
# Set HSTS Header if the page is delivered via SSL
Header always set Strict-Transport-Security %{HSTS}e env=X_HTTPS
# Redirect SSL-only non-www page to www and quit
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*)$ https://www.%{SERVER_NAME}%{REQUEST_URI} [R=303,L]
# Redirect ANY non-SSL page to SSL
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=303,L]
Apache-Konfiguration? Über welche Programmiersprache? –