www und http auf "nur" https umleiten
oxo888oxo
- htaccess
0 dedlfix0 Misch0 Jörg Reinholz0 oxo888oxo0 dedlfix0 Jörg Reinholz
Hallo
Ich möchte gerne meine gesamte Website auf https umleiten.
Umgeleitet werden sollen:
Auf:
Bisher habe ich in meiner .htaccess-Datei dazu folgendes:
RewriteEngine On
RewriteCond %{SERVER_PORT} !=443
RewriteRule ^(.*)$ https://example.org/$1 [R=301,L]
Das leitet aber leider noch nicht https://www.example.org auf https://example.org um. Könnt Ihr mir helfen, das hinzubekommen?
Gruß Ingo
Tach!
RewriteCond %{SERVER_PORT} !=443
Man kann auch %{HTTPS} auf den Inhalt on beziehungsweise ungleich on prüfen.
Das leitet aber leider noch nicht https://www.example.org auf https://example.org um. Könnt Ihr mir helfen, das hinzubekommen?
Man kann das vermutlich erweitern, aber dann wird es unnötig komplex. Ich würde da eine zweite Regel erstellen, die als Bedingungen auf HTTPS prüft und ob der Host mit www anfängt.
dedlfix.
Man kann das vermutlich erweitern, aber dann wird es unnötig komplex. Ich würde da eine zweite Regel erstellen, die als Bedingungen auf HTTPS prüft und ob der Host mit www anfängt.
Da ich selbst leider nicht weis, wie man das macht, habe ich nun noch mal gegoogelt. Dabei habe ich das hier gefunden:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^example\.org$ [NC,OR]
RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ https://example.org/$1 [R=301,L]
Ist das so korrekt?
Ich sehe darin ja nun nicht mehr den Teil mit diesem "!=443". Ich hatte irgendwo gelesen, dass das eine Endlosschleife verhindert. Aber so richtig verstanden habe ich das ehrlich gesagt nicht.
Tach!
Ist das so korrekt?
Ja, so geht das auch und ich seh da auf den ersten Blick keinen Fehler.
Ich sehe darin ja nun nicht mehr den Teil mit diesem "!=443". Ich hatte irgendwo gelesen, dass das eine Endlosschleife verhindert. Aber so richtig verstanden habe ich das ehrlich gesagt nicht.
Kann ich mir nicht vorstellen, dass das endlosschleift. Hast du da einen Verweis auf die Quelle dieses Wissens?
dedlfix.
Ich möchte gerne meine gesamte Website auf https umleiten.
Durch Senden der Kopfzeile Strict-Transport-Security (siehe https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security ) kannst du Browser veranlassen, automatisch auf https umzuschalten, ohne ausdrückliche Weiterleitung.
Moin!
RewriteEngine On
RewriteCond %{SERVER_PORT} !=443 [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.org
RewriteRule ^(.*)$ https://example.org/$1 [R=301,L]
Deutsch:
wenn rewrite-condition 1 erfüllt ist [ODER]
wenn rewrite-condition 2 erfüllt ist,
dann führe die Rewrite-Anweisung aus.
Ohne [or]:
wenn rewrite-condition 1 erfüllt ist (nicht erwähntes:) UND
wenn rewrite-condition 2 erfüllt ist,
dann führe die Rewrite-Anweisung aus.
Jörg Reinholz
Hallo
RewriteEngine On RewriteCond %{SERVER_PORT} !=443 [OR] RewriteCond %{HTTP_HOST} ^www\.example\.org RewriteRule ^(.*)$ https://example.org/$1 [R=301,L]
Der Code schaut doch schön aus :-) Und funktionieren tut er natürlich auch.
Hat er denn einen Vorteil gegenüber dem hier? Oder ist es im Grunde egal, welche der beiden Varianten ich verwende?
RewriteEngine On
RewriteCond %{HTTP_HOST} !^example\.org$ [NC,OR]
RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ https://example.org/$1 [R=301,L]
Tach!
Hat er denn einen Vorteil gegenüber dem hier? Oder ist es im Grunde egal, welche der beiden Varianten ich verwende?
Nein, ja, macht beides dasselbe.
dedlfix.
OK prima. Ich danke Dir. Ich nehme die obere Variante, die schaut "schöner" aus :-)
Moin!
Hat er denn einen Vorteil gegenüber dem hier?
Das kommt auf die genaue Problemstellung an.
Einmal wird geprüft, ob etwa nicht der Port 443 benutzt wird, der bei https der Standardport ist, aber nicht in jedem Fall der verwendete sein muss - z.B. wenn der in VM-Ware integrierte Server den Port belegt und es gewollt ist, dass das so bleibt. Sobald also ein anderer Port als 443 für den Apache-Webserver benutzt wird, ist das also falsch. Ebenso ist es falsch, wenn der Webserver so konfiguriert ist, dass auf Port 443 der unverschlüsselte Webserver lauscht - aber das ist eine sehr theoretische Konstellation und also ein "eher akademischer" Aspekt.
In der zweiten Variante wird geprüft, ob der Host nicht "example.org" ist. Wenn Du z.B. nur Zugriffe auf "http[s]://www.example.org" aber nicht "http[s]://mail.example.org" zu "https://example.org" weiterleiten willst, dann ist das falsch. Dieser Aspekt ist deutlich weniger akademisch als man zunächst denken mag.
Oder ist es im Grunde egal, welche der beiden Varianten ich verwende?
Im Ergebnis ist es unter den genannten Bedingungen egal.
Jörg Reinholz