Meppi hat geschrieben:Die beiden 3 Zeiler sind doch 100% identisch. So gewollt oder ein Versehen
Weder noch, wenn nicht ! Port 443, dann auf http, wenn Port 443 (ohne Verneinung mit !) dann https. Schaue noch einmal genauer hin. Die andere Variante erfüllt den gleichen Zweck.
Schaue Dir einfach noch einmal das erste Beispiel von southmedia an. Alles was ! nicht "
www.example.com" ist, soll weiter auf "
https://www.example.com" geleitet werden.
Code: Alles auswählen
RewriteCond %{HTTP_HOST} !^www\.southmedia\.de$
RewriteRule ^(.*)$ http://www.southmedia.de/$1 [L,R=301]
Jetzt würde aber noch "
https://www.example.com" übrigt bleiben, weil ja mit www nicht weitergeleitet werden soll.
Könnte so aussehen, ist nur ein Gedanke:
Code: Alles auswählen
# Wenn nicht ! Port 443, dann leite mit www. auf https weiter:
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
# Wenn Port 443, dann leite alles außer mit www. auf https weiter:
RewriteCond %{SERVER_PORT} ^443$
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
Vor den beiden bestehenden Zeilen fügst Du nur erst einmal zum Auskommentieren ein # ein und löscht nach Änderungen den Browsercache.
Edit: Je länger ich mir das betrachte, um so mehr denke ich mir, die eine Zeile ist über und eigentlich könntest Du die ersten beiden Zeilen so belassen, wie diese bereits vorhanden sind. Nur noch die untere Ergänzung hinzufügen:
Code: Alles auswählen
# Wenn nicht ! Port 443, dann leite alles auf https weiter:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
# Wenn Port 443, dann leite alles außer mit www. auf https weiter:
RewriteCond %{SERVER_PORT} ^443$
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]