Gibts hier Apache/mod_rewrite Experten?

Megabyte

New member
Registriert
27 Nov. 2008
Beiträge
145
Hallo,

gibts hier im Forum jemanden, der sich mit mod_rewrite unter Apache 2.4 auskennt?
Momentan scheitere ich an folgenden Anforderungen und würde mich daher über Hilfe sehr freuen:


  • Ein Server ist unter 2 Domains erreichbar: domain.DE und domain.COM
  • HTTPS soll immer erzwungen werden
  • Nur für domain.COM ist ein SSL Zertifikat hinterlegt

Es muss also von Apache zum einen HTTPS erzwungen werden und aber auch ggf. die Weiterleitung von domain.de auf domain.com durchgeführt werden.

Bisher klappt nur der Punkt mit dem HTTPS. Wenn ich aber https://domain.de aufrufe, bleibt er auch bei .de, was dann natürlich eine Zertifikatswarnung im Browser generiert.

Habe es hiermit versucht:

Code:
RewriteEngine OnRewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^domain.de$
RewriteRule (.*) https://domain.com%{REQUEST_URI} [R=301]


Vielen Dank für eure Unterstützung!
 
Moin

So aus dem Bauch heraus.
Code:
<IfModule mod_rewrite.c>                                   
    RewriteEngine On
    RewriteCond     %{HTTPS}                !=^on$
    RewriteCond     %{HTTP_HOST}            !^www.domain.com$
    RewriteRule     ^/(.*)                  https://www.domain.com/$1 [L,R,NE]
</IfModule>

RomanX
 
Moin,
danke für die Antwort. Leider auch hier das selbe Verhalten. Beim Aufruf von https://domain.de wird nicht weitergeleitet und es wird ein Zertifikats Error angezeigt. Alle anderen Fälle funktionieren...
 
Moin

Wie sieht denn die Konfiguration deines vhost aus?

RomanX
 
Hier mal eine Ergänzung, falls jemand hier nochmal auf den Thread stößt.
Das Problem liegt nicht im mod_rewrite, sondern bei HTTPS. HTTPS erlaubt mit der Ausnahme von SNI keine unverschlüsselte Übertragung. Was dein modrewrite nun bewirken soll, ist eine Antwort wie diese

HTTP/1.1 301 Moved Permanently
Location: https://domain.com/

Um diese Antwort zu erhalten muss zunächst der SSL Tunnel aufgebaut werden, durch den dann ganz normale HTTP Anfragen geschickt werden.
Für diesen SSL Tunnel ist wiederum ein gültiges Zertifikat nötig. Ohne ein gültiges Zertifikat gibt es keinen Tunnel und damit kannst du zum Server nicht einmal deine GET Anfrage schicken.

Entweder kaufst du dir ein Zertifikat für domain.de oder du nutzt domain.de nur via HTTP.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben