mod_rewrite alte domain auf neue mit https

Webentwicklung Sonstiges
 
Moin.

Folgendes Szenario. Alte und neue Domain verweisen auf den selben Webspace-Ordner.
Jetzt sollen alle Anfragen auf die neue Domain inkl. https und ohne www. () Aufruf weitergeleitet werden.

Mein Code klappt aber nicht in allen Fällen. Sobald ich https://www.altedomain.de aufrufe, bricht er ab.

  1. # redirect
  2. # if https is off
  3. # if www is used
  4. # if url is not main domain
  5. RewriteCond %{HTTPS} off [OR]
  6. RewriteCond %{HTTP_HOST} ^www\. [OR]
  7. RewriteCond %{HTTP_HOST} !altedomain\.de$ [NC]
  8. RewriteRule ^(.*)$ https://neuedomain.de/$1 [R=301,L]
Quelltext in Zwischenablage kopieren
Link zu diesem Beitrag in die Zwischenablage kopieren
Mister Ad
Werbung
Schon mal bei Amazon geguckt? Vielleicht wirst du dort fuendig.

 
Scheinbar liegt es daran, dass der Server den Fehler vorher zurückgibt, bevor er den Request bekommt (Kein Zertifikat vorhanden). Hmpf
Link zu diesem Beitrag in die Zwischenablage kopieren
Müsste in der dritten Conditionnicht !neuedomain.de stehen?
Und wenn das dort stünde, wäre dann die Zweite nicht überflüssig?
Link zu diesem Beitrag in die Zwischenablage kopieren
Achso, hab den Code hier schnell manuell geschrieben.
Jepp, dritte Zeile entweder !neuedomain oder ^altedomain )

die zweite Zeile ist wichtig, weil sie sich auch auf die neue Domain bezieht.
Es soll alles nur noch non-www haben, damit das SSL Zertifikat keinen Cross-Domain Fehler auspuckt.

Schade, dass man das mit dem https Aufruf nicht umgehen kann.
Link zu diesem Beitrag in die Zwischenablage kopieren
Du könntest das in zwei eigenständige Regeln aufgliedern, dann müssts gehen:

  1. # HOST umleiten
  2. RewriteCond %{HTTP_HOST} !^neuedomain\.de$
  3. RewriteRule ^(.*)$ https://neuedomain.de/$1 [R=301,L]
  4.  
  5. # SSL erzwingen
  6. RewriteCond %{HTTPS} !on
  7. RewriteRule ^(.*)$ https://neuedomain.de/$1 [R=301,L]
Quelltext in Zwischenablage kopieren

Schlimmstenfalls installierst Du halt noch ein letsencrypt-Zertifikat für die alte Domain.
Link zu diesem Beitrag in die Zwischenablage kopieren
Okay, sorry, war Blödsinn.
Wenn Du es explizit mit https aufrufst, bleibt es natürlich beim beschriebenen Szenario.
Link zu diesem Beitrag in die Zwischenablage kopieren
Jepp, alle anderen Szenarien habe ich schon abgedeckt.
Habe erst nach Erstellen des Threads paar Suchergebnisse gefunden und bemerkt, dass man es nicht umgehen kann. Eigentlich blöd.
Link zu diesem Beitrag in die Zwischenablage kopieren
Eigentlich aus Sicherheitsgründen genau richtig so ;)
Link zu diesem Beitrag in die Zwischenablage kopieren
Kannst du das erklären?

Wenn ich den Aufruf via Header weiterleite auf eine andere Seite, dann ist doch dabei kein Sicherheitsrisiko. Es geht ja um das nicht-vorhandene Zertifikat.
Link zu diesem Beitrag in die Zwischenablage kopieren
Aber wenn der Server nicht sicher per HTTPS erreichbar ist, kann auch der Header nicht sicher übertragen werden. Da hat der Clemens schon Recht.

Eventuell könntest Du den Redirect direkt über DNS-Einträge realisieren.
Link zu diesem Beitrag in die Zwischenablage kopieren
Darum geht es doch gar nicht.

Die Sicherheit kommt doch von der Falscheingabe.
Es wird ja nicht vom Server vorgegaugelt: hier sichere Seite, sondern der User gibt ein falsches Protokoll ein und man will ihn auf die richtige Seite weiterleiten. Geht aber nicht, weil der Server vorher abbricht.

Wie stellt man SSL Aufrufe im DNS ein?
Link zu diesem Beitrag in die Zwischenablage kopieren
#