Ich verwalte eine kleine Website in einer gemeinsam genutzten Hosting-LAMP-Umgebung: Dies bedeutet im Grunde, dass ich nur eine htaccess-Datei bearbeiten kann.
Ich wollte HSTS-Unterstützung hinzufügen (und ich habe es getan), aber als ich meine Website hier auf die Berechtigung zum HSTS-Preload getestet habe , wurde der folgende Fehler angezeigt:
Fehler: HTTP leitet zuerst zu www um
http://example
(HTTP) sollte sofort zuhttps://example
(HTTPS) umleiten, bevor die www-Subdomain hinzugefügt wird. Derzeit erfolgt die erste Umleitung zuhttps://www.example.
Die zusätzliche Umleitung ist erforderlich, um sicherzustellen, dass jeder Browser, der HSTS unterstützt, den HSTS-Eintrag für die Top-Level-Domain aufzeichnet, nicht nur für die Subdomain.
Ich nehme an, ich sollte Benutzer folgendermaßen umleiten:
http://example
(Dies gibt der Benutzer in die Adressleiste seines Browsers ein.)https://example
(Wir leiten ihn zur HTTPS-Version der Website weiter.)https://www.example
(Wir leiten ihn erneut zur Subdomain www weiter.)
Meine aktuelle Weiterleitung erfolgt folgendermaßen:
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
Ich habe versucht, vor der letzten Zeile eine Umleitung hinzuzufügen:
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
Ich habe jedoch den Fehler "Seite leitet nicht richtig um" vom Browser erhalten.
Wie kann ein Benutzer von der http-Version der Website zum https und schließlich zum https mit www umgeleitet werden? Und: Gibt es Risiken?
quelle
Strict-Transport-Security
Antwortheader festlegen. Um dies beispielsweise für die Umleitung festzulegen, müssen Sie dasalways
Argument für dieHeader
Direktive verwenden. Ich habe eine verwandte Frage im Pro Webmasters-Stack beantwortet (überspringen Sie den ersten Teil meiner Antwort zuon
/off
), in der die Implementierung von "HSTS- Preload " in näher erläutert wird.htaccess
..htaccess
nur verwandte Fragen geeignet (ServerFault setzt voraus, dass Sie die volle Kontrolle über den Server haben. In diesem Fall würden Sie dies nicht tun.htaccess
). Es ist wohl einfacher , dies in der Serverkonfiguration mithilfe separater<VirtualHost>
Container zu implementieren (da Sie sich nicht mit Umgebungsvariablen und zusätzlichen Bedingungen herumschlagen müssen - es ist "sauberer" und weniger fehleranfällig). Ich glaube nicht, dass ich die Übermittlung der "Preload List" empfehlen würde, wenn Sie nur Zugriff auf haben.htaccess
. (Mein 2c)