it-swarm.com.de

htaccess leitet Nicht-WWW mit SSL / HTTPS zu WWW um

Ich möchte eine Umschreiberegel, die alles zu https://UNDwww umleitet.

Zum Beispiel sollte http://example.com zu https://www.example.com gehen

Das habe ich:

RewriteEngine On
RewriteCond %{SERVER_PORT} !=443
RewriteCond %{HTTP_Host} ^(www\.)?example\.com$ [NC]
RewriteRule ^(.*)$ "https\:\/\/www\.example\.com\/$1" [R=301,L]
8
Will

Ich habe die Lösung gefunden.

Ohne HSTS (einfache Weiterleitung):

RewriteCond %{HTTP_Host} !^www\.
RewriteRule .* https://www.%{HTTP_Host}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

Mit HSTS (doppelte Weiterleitung):

RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_Host} !^www\.
RewriteRule .* https://www.%{HTTP_Host}%{REQUEST_URI} [L,R=301]
10
Will

Ihre Bedingungen sind implizit UND-verknüpft und Ihre zweite Bedingung ist immer erfüllt (es sei denn, Sie haben andere Domänen), sodass Ihre aktuellen Regeln nur Nicht-SSL-Datenverkehr umleiten.

Sie müssen die Bedingungen OR und die (zweite) Bedingung www annullieren:

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

Wenn der SERVER_PORT nicht 443 ist (dh nicht HTTPS ist) oder der Host startet nicht mit www. (dh Sie greifen auf die bloße Domain zu), dann leiten Sie zu um kanonische URL.

Ob dies jedoch https://example.com zu https://www.example.com umleitet, hängt von Ihrem Sicherheitszertifikat ab. (Ihre Site muss sowohl über das Internet als auch über das Internet über SSL erreichbar sein, damit die .htaccess-Umleitung ausgelöst wird.)

5
MrWhite

Dies wird sowohl für www als auch für Nicht-www verwendet. Wenn Sie versuchen, einen Link mit www zu öffnen, leiten Sie die URL mit www zu https weiter

Beispiel: http://domain.com Weiterleiten an https://domain.com

oder Wenn Sie versuchen, einen Link mit Nicht-Www zu öffnen, leiten Sie die URL mit Nicht-Www zu https weiter

Beispiel: http://www.domain.com Weiterleiten an https://www.domain.com

RewriteEngine on

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]
1
Ajay Patidar