Frisch notiert!

Die neusten Artikel aus unserem Blog.

.htaccess Schnippsel: https erzwingen

Zuletzt aktualisiert am 25/08/2016 von Adrian Lambertz
44 Kommentare
Netzwelt, Server & Technik, Wordpress
/ Netzwelt / Server & Technik / Wordpress / 44

Ihr habt eure Website gerade auf HTTPS umgestellt und möchtet, dass alle Anfragen nun auch direkt auf die HTTPS Version umgeleitet werden? Mit diesem Schnipsel kein Problem!

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Füge die obigen Zeilen einfach ganz oben in deine .htaccess Datei ein. Dieser Schnippsel bewirkt, dass alle NICHT-HTTPS Anfragen zu der HTTPS:// Version deiner Seite umgeleitet werden. Das Schnippsel sendet dabei den Code „301 Moved Permanently“ mit, damit z.B. Suchmaschinen – aber auch Browser – sich das merken.

Warum ist der Code 301 wichtig?

Der Code 301 steht für „Moved Permanently“ und sagt deinem Browser, dass die gerade ausgeführte Weiterleitung dauerhaft ist. Wenn Suchmaschinen wie Google deine Seite wieder besuchen, gibt der Code ihnen ebenfalls Bescheid, dass nun die https-Variante die dauerhafte Adresse deiner Seite ist. Somit merkt sich die Suchmaschine das und berücksichtigt es bei der Indexierung. Da SSL-verschlüsselte Websites von Google besser gerankt werden als Non-SSL Seiten, ist dies ein großer Vorteil.

Würden wir zum Beispiel den Code 302 „Moved Temporarily“ nutzen, sagen wir dem Browser und den Suchmaschinen, dass die gerade ausgeführte Weiterleitung nur temporär ist. Somit werden Suchmaschinen das nicht mit in den Suchergebnissen unterstützen.

$_GET Variablen und Requests werden bei dieser Weiterleitung mit unterstützt und an HTTPS:// weitergereicht.

 

Adrian Lambertz

Seit 2010 bin ich nun schon bei Pixelbar mit dabei. Zuerst als Auszubildender und nach erfolgreichem Abschluss meiner Ausbildung als Frontend-Entwickler. Ohne Musik und Kaffee kann ich nicht leben, daher konsumiere ich beides während der Arbeit praktisch durchgehend :). Daneben liebe ich WordPress - darauf habe ich mich spezialisiert.

Weitere Beiträge von adrian anzeigen

44 Kommentare

  1. Hey Adrian,

    vielen Dank für Deinen Artikel. Und das Schöne an HTTPS ist, dass man es mittlerweile kostenlos bei (fast) allen Anbietern bekommt. :)

    Schöne Grüße

    David – Blogger-Base.net

  2. Ich habe den Code eingesetzt, aber trotzdem sind manche Pages weiter unter http erreichbar. Ein wirkliches Erzwingen ist das nicht. Gibt es vielleicht noch eine andere Möglichkeit, die ich testen kann?

    1. Hallo,

      dann wird bei dir irgendetwas anders noch dazwischenfunken. Hast du noch andere HTACCESS Dateien auf dem Server liegen? Das Snippet hier leitet nämlich ALLE nicht https-zugriffe um – ohne Ausnahme.

    2. Also bei mir hat der Befehl funktioniert! Bin gespannt welche Auswirkungen ich jetzt nach der Umstellung zu erwarten habe…. Hoffentlich geht es bergauf und nicht in die andere Richtung. Das wäre eine Katastrophe.

  3. Danke für den Artikel Adrian,

    leider habe ich einige Probs seitdem ich auf HTTPS umgestellt habe. Gibt es eine Möglichkeit den oben genannten Befehl wieder rückgängig zu machen? Es scheint nicht zu reichen, den Code einfach wieder zu entfernen :-/

    1. Hallo atti,

      ja, man muss ebenfalls im WordPress alle Links innerhalb der Datenbank auf HTTPS umstellen. Das ist in diesem Artikel auch nicht beschrieben.
      Normalerweise reicht es aber das Snippet wieder zu entfernen, dann klappt es wieder – möglicherweise cached dein Browser die Anfrage auch und speichert https ein.
      Starte den Brwoser mal neu oder lösche Cookies/Verlauf.

  4. Hallo Adrian, vielen Dank für deinen Beitrag! Könntest du mir einen Befehl nennen, der nicht www auf www umleitet sowie http auf https? Da ich den www Befehlt schon in der htaccess Datei habe, führt der https Befehlt leider eine Endlosschleife aus. Ich möchte aber ungern die www Umleitung rausnehmen. Welche Lösung gibt es hier? Die Seite, die ich betreue erschient zum Glück schon auf https, nur ist das Schloss nicht immer grün.
    Herzlichen Dank und schöne Grüße Kerstin

  5. Weiß jemand von euch, wie ich eine https-Seite auf eine andere https-Seite per .htaccess korrekt umleite? Ich nutze bei beiden Seiten WordPress und die Weiterleitungen funktionieren nicht alle! Konkret möchte ich https://www.euer-hochzeitsfotograf.eu/hochzeitsfotografie/kassel/ zu https://www.hochzeitsfotograf-colista.de/hochzeitsfotograf-kassel/ weiterleiten. Jedoch verweist die .htaccess auf die Seite https://www.hochzeitsfotograf-colista.de/hochzeitsfotografie/kassel/, die es nicht gibt! Hat jemand von euch eine Problemlösung dafür?

    Zur Zeit habe ich für alle Seiten und Verzeichnisse der alten Webseite ein Verzeichnis mit einer index.php erstellt die dann mit diesem Behehl umleitet:

    Das funktioniert mit der PHP-Weiterleitung zwar super, jedoch sind noch beide Domains im Google-Index, was ich gerne wegen Doublicate Content vermeiden möchte! Deswegen würde ich gerne eine korrekte .htaccess-Weiterleitung erstellen. Was meint ihr dazu?

    Vielen Dank schon mal für eure Hilfe!

  6. Hallo, mein Code sieht etwas anders aus:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

    Wo liegt denn hier der Unterschied?

  7. Frohes neues Jahr :-)

    Ich habe deinen Artikel über eine Websuche gefunden. Vielen Dank für deine Anleitung, klappt tadellos ♥

    Viele Grüße :-)

    Stefan

  8. Hallo Adrian,
    habe das oben benannte Schnippsel in die .htaccess eingesetzt und erhalte in der Einzelseiten-Analyse bei ryte. com immer noch die Meldung „Gravierender Fehler:“ Definiere eine eindeutige URL, indem Du die nicht verschlüsselte SSL-Requests weiterleitest.
    Was läuft da nicht korrekt? Bin natürlich auch nicht der Experte der das so einfach aus dem Ärmel schüttelt. Sicher kann mir dabeei geholfen werden!!!
    DANKE im voraus
    Gruß Arndt

  9. Hallo habe eine Seite die auch eine mobile Version hat. Diese ist in einer htaccess Datei gespeichert. Die https Weiterleitung ist unten angefügt. Trotzdem funktioniert es nicht. Hat jemand Lösungsansätze?

  10. Hallo,

    in meinem root folder gibt es noch gar keine .htaccess datei. Soll ich also einfach eine erstellen und da reinlegen? Und in welchen folder genau?

    1. Hallo Paul!
      Erstelle einfach eine Textdatei mit deinen rules und lade diese auf deinen Webspace in den root Ordner. Anschließend nennst du die Textdatei einfach in „.htaccess“ um. Der Root-Ordner ist der Ordner in dem deine Webseite liegt (index.html oder index.php).

      Grüße
      Oli

  11. Bei mir funktioniert es auch nicht :-/
    Ich benutze noch FileZilla zum rüberschieben der Sachen auf meinen Server. (Ich habe alles in einem Ordner auf meinem Desktop gespeichert.)
    Das steht normalerweise in der htaccess Datei:
    #Rewrite everything to https
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    Weiß wer woran es liegt ?

  12. Hallo Adrian Lambertz
    Danke für die Anleitung und Erklärung.
    Ist es richtig: wenn jemand eine Unterseite ohne https direkt ansteuern, dann wird er immer auf die Startseite gelenkt? Oder ist das Browser abhängig? Falls normales verhalten, kann man den rewrite auch so schreiben, das er den eingegebenen Teil bis auf das „http://“ behält?
    Danke für die Hilfe

  13. Vielen Dank für den kleinen Tipp !!
    Funktioniert einwandfrei
    Leitet sicher um, sowohl Startseite, wie auch Unterseiten – auch direkt angesprungene.
    Hat mir sehr weitergeholfen !!!

  14. Hallo Adrian, danke für den netten Snippet, neu 2 Sachen solltest du ändern:

    – RewriteCond %{HTTPS} !=on – macht keinen Sinn, lieber !on oder off schreiben :-)
    – ^ https://… – hier darf kein Leerzeichen sein, so soltle es aussehen ^https://…

    Wäre super wenn Du das Snippet editierst!

    1. Hey,

      – RewriteCond %{HTTPS} !=on – macht keinen Sinn, lieber !on oder off schreiben :-)

      mh, wenn es keinen Sinn machen würde, stünde es nicht so im Apache Wiki, oder? Jedenfalls funktioniert deine Variante auch. Klar. Sind einfach andere Schreibweisen. https://wiki.apache.org/httpd/RewriteHTTPToHTTPS

      – ^ https://… – hier darf kein Leerzeichen sein, so soltle es aussehen ^https://…
      Selbe Antwort wie oben: Im Apache Wiki steht es ebenfalls mit Leerstelle. Funktioniert auch beides.

  15. Touché! Deinen Code habe ich bei ein paar Websites eingefügt und es ging, bei einer jedoch nicht. Die o.g. Änderungen haben geholfen und funktionieren auch bei den anderen Websites. Vielleicht hilfts wem anders hier irgendwann ;-)

    1. Ja, jeder Server ist anders geconft bzw. gibt es verschiedene Umgebungen in welche andere Rewrite Rules mit der hier dann schon kollidieren… leider kann man nie jeden Fall abdecken. Sind oft superspezifisch. :-)

  16. Hallo,
    ich habe eine Desktopseite die mit SSL geschützt sein soll und eine MObile Seite, die nicht SSL geschützt wird.
    Wie bekomme ich, dass erkannt wird, ob man mit Smartphon auf die Seite zugreigt und dann weiterleitet auf die mobile Seite ohne SSL und alle Desktop Anweisungen auh https umgeleitet werden?

  17. Hallo und danke für Infos und Hilfe!
    Es stellt sich das Problem, dass beim Versuch, die .htaccess-Datei auf den (1und1)-Server des Kunden zu laden, die Info erscheint: „eine Datei mit dem Namen htaccess befindet sich bereits …“ Aber sie ist nirgends zu sehen, auch in keinem Unterordner. Upload über Transmit. Die Datei erstelle ich als .txt-Datei und ändere die Bezeichnung erfolglos auf dem Server. Über einen Tipp würde ich mich freuen!

  18. Cool danke, Autor hat recht SSL und Responsive Webdesign ist mittlerweile ein wichtiger Faktor im Bereich SEO, speziell Onpage-Optimierung, schon seit Jahren wird empfohlen sich für eine Variante zu entscheiden: alo mit www. oder ohne www bzw. jetzt mit https.

  19. Hallo,
    benötige noch einen code für die Umleitung aller Anfragen mit www auf https. Da kommt bei mir nur „Keine sichere Verbindung“. NET::ERR_CERT_COMMON_NAME_INVALID

  20. Der Artikel ist nicht mehr der Aktuellste aber es funktioniert immer noch. Ich dachte immer das Technik und auch Codes immer schnell überholt sind…

  21. Super, Deinen Schnipsel habe ich gerade auf einer bei einer (statischen) Webseite verwendet, die bei ionos liegt.
    Deren Anleitung zum Erzwingen von HTTPS war fehlerhaft.
    Mit Deiner hat es auf Anhieb geklappt.
    Herzlichen Dank!

  22. Nach langer Zeit, hat das Suchen ein Ende. Da ist er, der Tipp nach dem ich gesucht habe. Bielen lieben Danke :)
    Die Umstellung hat funktioniert.
    Mfg

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert