.htaccess Schnippsel: https erzwingen
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.
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
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?
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.
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.
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 :-/
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.
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
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!
Hallo Christian, warum erstellst du die Redirects nicht einfach manuell? Da via .htaccess ein „Muster“ (via Regex) erstellen ist ja quasi unmöglich.
Folgender .htaccess Befehl leitet dir die URL korrekt um (und sendet einen 301 „Redirect Permanent“ – wichtig für Google & Co.):
Redirect 301 /hochzeitsfotografie/kassel/ https://www.hochzeitsfotograf-colista.de/hochzeitsfotograf-kassel/
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?
Hallo, vielen Dank. Klappt super. Und wie werden jetzt noch zusätzlich alle Anfragen ohne www auf mit www umgeleitet?
rewritecond %{http_host} ^domain.de [nc]
rewriterule ^(.*)$ https://www.domain.de/$1 [r=301,L,nc]
Frohes neues Jahr :-)
Ich habe deinen Artikel über eine Websuche gefunden. Vielen Dank für deine Anleitung, klappt tadellos ♥
Viele Grüße :-)
Stefan
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
Funktioniert so tadellos! Beste Grüße!
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.domainname.de/$1 [R=301,L]
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?
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?
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
Klasse Interpretation. Eine Anleitung woraus auch ich schlau wurde. Das war ein Kampf – dank pixelbar.be Problem gelöst. DANKE!
Funktioniert tadellos, danke dafür!
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 ?
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
Vielen Dank für den kleinen Tipp !!
Funktioniert einwandfrei
Leitet sicher um, sowohl Startseite, wie auch Unterseiten – auch direkt angesprungene.
Hat mir sehr weitergeholfen !!!
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!
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.
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 ;-)
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. :-)
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?
Hallo Peter, aus welchem Grund sollte die mobile Version nicht geschützt werden. Der Sinn erschließt sich mir nicht :-) Aber um auf deine Frage zu antworten: Hier könntest du fündig werden: https://stackoverflow.com/questions/3680463/mobile-redirect-using-htaccess oder wenn es via Javascript gelöst werden kann: https://css-tricks.com/snippets/javascript/redirect-mobile-devices/
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!
Hallo Kurt,
ja, das ist normal – Dateien mit einem Punkt am Anfang sind versteckte Dateien. Schau mal hier – so zeigst du versteckte Dateien in Transmit an.
Hoffe das hilft!
Hallo Adrian,
danke! Alles klar. Ich liebe es, neue kleine Tricks zu lernen! Nochmal: Vielen Dank, Kurt
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.
Um nicht alles lesen zu müssen –
Klappts jetzt? Hab die .htaccess abgelegt? WordPress umstellen geht normalerweise recht schnell?!
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
ein kurzes DANKE. Damit waren alle Seiten in ein paar wenigen Minuten umgestellt.
Da ist er, der Tipp nach dem ich gesucht habe. Danke!
Die Umstellung hat direkt funktioniert.
Besten Dank! Benutze das Snippet bei jeder neuen Website und lande immer wieder hier :D
Funktionierte beim ersten Mal am PC. Aber am Smartphone nicht. Cache gelöscht.
Der Artikel ist nicht mehr der Aktuellste aber es funktioniert immer noch. Ich dachte immer das Technik und auch Codes immer schnell überholt sind…
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!
Vielen Dank! Genau, was ich gesucht habe.
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
Endlich hab ich die Lösung für mein Problem gefunden. Vielen lieben Dank :)