Detlev: Sichere Verbindung

Hallo, trotz Ostern eine Frage. Ich habe meine Homepage umgestellen lassen auf eine sichere Verbindung. Jetzt ist sie erreichbar über http://www.... und über https;//www.... Wie erreiche ich, dass sie nur noch über die sichere Variante aufgerufen werden kann?

  1. Hallo Detlev,

    Setze

    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteCond %{ENV:HTTPS} !=on
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
    

    ganz an den Anfang deiner .htaccess-Datei.

    Damit wird jeder Aufruf über die unsichere Verbindung auf die sichere umgeleitet.

    Bis demnächst
    Matthias

    --
    Rosen sind rot.
    1. RewriteEngine On
      RewriteCond %{HTTPS} !=on
      RewriteCond %{ENV:HTTPS} !=on
      RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
      

      Apache selber empfiehlt redirect statt mod_rewrite:

      <If "%{SERVER_PROTOCOL} != 'HTTPS'">
          Redirect "/" "https://%{HTTP_HOST}/"
      </If>
      
      1. Und was empfiehlt Herr Google?

        1. Hallo Detlev,

          Es sollte beides funktionieren.

          Bis demnächst
          Matthias

          --
          Rosen sind rot.
      2. Hallo Erwin,

        Apache selber empfiehlt redirect statt mod_rewrite:

        <If "%{SERVER_PROTOCOL} != 'HTTPS'">
            Redirect "/" "https://%{HTTP_HOST}/"
        </If>
        

        Damit wird man aber immer auf die Startseite weitergeleitet - sinnvoller ist es aber imho wenn die aktuelle Unterseite erhalten bleibt.

        Gruß,
        Tobias

        1. @@tk

          Apache selber empfiehlt redirect statt mod_rewrite:

          <If "%{SERVER_PROTOCOL} != 'HTTPS'">
              Redirect "/" "https://%{HTTP_HOST}/"
          </If>
          

          Damit wird man aber immer auf die Startseite weitergeleitet

          Nö, man kommt zur entsprechenden Seite.

          Bei mir wird allerdings %{HTTP_HOST} nicht aufgelöst; ich musste das durch den wirklichen Hostnamen (Domainnamen) ersetzen.

          LLAP 🖖

          --
          „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
          1. Bei mir wird %{HTTP_HOST} ebenfalls nicht aufgelöst. Den echten Namen würde ich ungern hineinschreiben. Da die Variante ja vielfach empfohlen wir, wird sie ja auch meist funktionieren. Vielleicht kennt jemand die Ursache, dass es manchmal nicht funktioniert?

        2. Redirect "/" "https://%{HTTP_HOST}/"
          

          Damit wird man aber immer auf die Startseite weitergeleitet

          Redirect und seine Geschwister leiten seit jeher alle Seiten, die mit dem gegebenen Pfad beginnen, auf den entsprechenden Pfad unter dem gegebenen neuen Pfad um. Anders ausgedrückt: Bei "Redirect A B" wird im angefragten Pfad der A- durch den B-Teil ersetzt, aus "A/bla/fasel" wird "B/bla/fasel".

          Redirect ist ein elegantes Schnitzmesser, RewriteRule eine schwere Streitaxt. Die haben beide ihre Berechtigung, aber es herrscht leider die Vorliebe, jede Kartoffel mit einer Streitaxt zu schälen.

          1. Hallo Dein Apache,

            Redirect ist ein elegantes Schnitzmesser, RewriteRule eine schwere Streitaxt. Die haben beide ihre Berechtigung, aber es herrscht leider die Vorliebe, jede Kartoffel mit einer Streitaxt zu schälen.

            In dem Fall kommt durch Rewrite die zusätzliche Info, dass die Ressource dauerhaft unter https zu finden ist. Suchmaschinen werden sich das merken.

            Bis demnächst
            Matthias

            --
            Rosen sind rot.
            1. Redirect ist ein elegantes Schnitzmesser, RewriteRule eine schwere Streitaxt. Die haben beide ihre Berechtigung, aber es herrscht leider die Vorliebe, jede Kartoffel mit einer Streitaxt zu schälen.

              In dem Fall kommt durch Rewrite die zusätzliche Info, dass die Ressource dauerhaft unter https zu finden ist. Suchmaschinen werden sich das merken.

              Dafür braucht man erst recht kein mod_rewrite. Redirect permanent bzw. RedirectPermanent existieren.

              1. Hallo Dein Apache,

                Dafür braucht man erst recht kein mod_rewrite. Redirect permanent bzw. RedirectPermanent existieren.

                Stimmt.

                Bis demnächst
                Matthias

                --
                Rosen sind rot.