Testit: .htaccess

Hallo,
kann mir jemand sagen ob und wie ich in einer .htaccess überprüfen kann ob die Adresse folgendermaßen formatiert ist:

https://www.mydomain.com

Bezüglich einer Umleitung auf https habe ich folgenden code gefunden:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI}

Allerdings stellt sich mir die Frage wie eine RewriteCond für www aussehen kann und diese mit der bestehenden RewriteCond verknüpft werden soll.

Viele Grüße

Testit

  1. kann mir jemand sagen ob und wie ich in einer .htaccess überprüfen kann ob die Adresse folgendermaßen formatiert ist:

    https://www.mydomain.com

    du meinst https://www.example.com

    Bezüglich einer Umleitung auf https habe ich folgenden code gefunden:

    Dann nimm ihn bitte nicht her - der ist in jedem Fall Mist.

    RewriteEngine On

    Das hier ist noch OK :)

    RewriteCond %{SERVER_PORT} !^443$

    Port 443 ist zwar sehr gebräuchlich aber nicht verpflichtend - das Feld "HTTPS" zu befragen ist zielführender.

    RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI}

    SERVER_NAME ist wenig prickelend, da dies nichts mit dem verwendeten Host zu tun hat - HTTP_HOST ist hier das Mittel der Wahl.

    Geht aber auch kürzer, dafür extra REQUEST_URI bemühen ist unnötig - und was man auch immer wieder sieht: das suchmuster Klammern. Das ist zwar jetzt nicht die Bremse bei so kurzen Zeichenketten, aber sowas sollte man sich garnicht erst angewöhnen:

    RewriteRule .* https://%{HTTP_HOST}/$0

    Allerdings stellt sich mir die Frage wie eine RewriteCond für www aussehen kann und diese mit der bestehenden RewriteCond verknüpft werden soll.

    Hä?

    Du meinst eine weitere RewriteCond, in der du prüfst ob der HTTP_HOST deinen Vorstellungen entspricht?

    Ein Blick in die Doku genügt http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html - das ist so ziemlich der Standardfall

    1. Hallo, und vielen Dank für deine Antwort, suit.
      Das sieht so weit schon sehr gut aus.
      Mein SSL-Zertifikat ist auf www.example.com ausgestellt.
      Daher will ich noch prüfen, dass der User immer auf https://www.example.com kommt und nicht versehentlich auf https://example.com und dann eine Fehlermeldung erhält.

      Gibt es da einen Weg?

      Viele Grüße
      TESTIT

      1. Mein SSL-Zertifikat ist auf www.example.com ausgestellt.
        Daher will ich noch prüfen, dass der User immer auf https://www.example.com kommt und nicht versehentlich auf https://example.com und dann eine Fehlermeldung erhält.

        Gibt es da einen Weg?

        Ja sicher - wenn jemand mit example.com als HTTP_HOST daherkommt (RewirteCond %{HTTP_HOST} ^example.com$), wird er auf www.example.com umgeleitet. Den Teil bekommst du sicher allein hin.

        1. Perfekt, vielen Dank dir Suit

      2. Tach!

        Mein SSL-Zertifikat ist auf www.example.com ausgestellt.
        Daher will ich noch prüfen, dass der User immer auf https://www.example.com kommt und nicht versehentlich auf https://example.com und dann eine Fehlermeldung erhält.

        Das wird nicht funktionieren. Wenn ich https://example.com in meinem Browser eingeben, dann will der eine gesicherte Verbindung mit eben diesem Hostnamen aufbauen, wozu er das Zertifikat jetzt schon braucht. Erst dann kann der Server mit einer Umleitung antworten, was für dich schon zu spät ist, weil die Fehlermeldung bereits bei der ersten Response kommen müsste.

        dedlfix.