it-swarm.com.de

Umleiten von WordPress /.htaccess/HSTS/SSL

Ich versuche, HSTS auf meiner Website korrekt einzurichten, und es funktioniert derzeit nur zur Hälfte. Ich muss den richtigen Weg finden, um weiterzuleiten: http://www.example.com to https://www.example.com finally to https://example.com.

Tatsächlich hat die Website 1 Weiterleitung pro URL-Version:

  • http://www.example.com 301 Weiterleitung zu https://example.com/

  • http://example.com 301 Weiterleitung zu https://example.com/

  • https://www.example.com 301 Weiterleitung zu https://example.com/

Ich muss jetzt die Umleitung über meinen .htaccess anpassen, damit das Ergebnis so aussieht:

  • http://www.example.com
    301 Weiterleitung https://www.example.com
    301 https://example.com umleiten "

Ich habe es ein paar Mal versucht, aber am Ende habe ich die Website immer geschlossen. Könnten Sie mir bitte helfen, das zu beheben?

Sorry Leute, ich habe vergessen, etwas Wichtiges zu erwähnen: Ich habe HSTS bereits installiert und es arbeitet an example.com, aber wenn ich es als www.example.com teste, erhalte ich "Fehler: Subdomain, Fehler: Kein HSTS-Header, Fehler: HTTP leitet nicht zu HTTPS um" Ich teste es mit hstspreload.org

3
JakeDD

Die kanonische URL lautet also https://example.com/.... (Sie beschreiben anscheinend eine sinnlose Zwischenumleitung. Sie sollten nur zur endgültigen kanonischen URL umleiten, ohne dass dazwischen etwas erforderlich ist.)

Dies ist nur eine Standardumleitung von HTTP zu HTTPS.

Sie können dies mit mod_rewrite am oberen Rand Ihrer .htaccess-Datei tun. Zum Beispiel:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_Host} ^www\.
RewriteRule (.*) https://example.com/$1 [R=301,L]

Was das oben Gesagte sagt, ist ... wenn die Anfrage nach HTTP oder WWW-Subdomain ist, 301 leiten Sie zu der kanonischen URL um.

Sie sollten dies jedoch mit einer 302 (temporären) Umleitung vor testen, die Sie HSTS implementieren. Wenn Sie HSTS bereits implementiert und die HTTPS-URL besucht haben, gibt der Browser die aktualisierte Anforderung automatisch aus und Sie sehen nie die Umleitung (was der springende Punkt von HSTS ist).


UPDATE:

Fehler: HTTP leitet nicht zu HTTPS um. http://www.example.com (HTTP) leitet zu https://example.com/ um. Die erste Weiterleitung von http://example.com sollte auf eine sichere Seite auf demselben Host (https://www.example.com) erfolgen. "

Ah, es scheint so, als müssten Sie zuerst "Umleiten von HTTP zu HTTPS auf dem selben Host", um die Submission Requirements zu erfüllen, um in die HSTS-Vorladeliste zu gelangen. (Dies scheint jedoch in Bezug auf SEO und Benutzererfahrung nicht intuitiv zu sein.)

Um die Umleitung in zwei Teile zu teilen und zu HTTPS first umzuleiten, führen Sie vor der kanonischen www-Umleitung stattdessen Folgendes aus:

RewriteEngine On

// 1. Redirect to HTTP to HTTPS on the same Host
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_Host}/$1 [R=301,L]

// 2. Canonical redirect from www to non-www
RewriteCond %{HTTP_Host} ^www\. [NC]
RewriteRule (.*) https://example.com/$1 [R=301,L]

Weitere Hinweise zum Ausgeben von kanonischen Weiterleitungen für die HSTS-Vorladeliste finden Sie unter Meine Antwort auf die folgende Frage im Pro Webmasters-Stapel:
https://webmasters.stackexchange.com/questions/112263/hsts-preload-section-on-htaccess

3
MrWhite