top-presents hat geschrieben:wir haben diese 3 Varianten im Einsatz. Diese 3 Zeilen in die .htaccess im root-Verzeichnis deiner Domein eintragen:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.presents4friends\.com
RewriteRule ^(.*)
https://www.presents4friends.com/$1 [L,R]
Mal abgesehen davon, dass das für einen einfachen Umzug die berühmte Kanonenkugel auf Spatzen ist, hilft ihm die Konstruktion so nicht weiter, weil sie nur auf demselben Server funktioniert. Er schrieb aber, dass er auf einen neuen Webserver umzieht. Wenn überhaupt, dann ohne die RewriteCond-Zeile.
Vielleicht kann hier jemand sagen, wo die Unterschiede bei der Funktionalität liegen und welche Variante man verwenden sollte.
Die einzigen Unterschiede sind das Dollarzeichen am Ende des Musters und die Weiterleitungsart:
RewriteCond %{HTTP_HOST} !^www\.presents4friends\.com
RewriteCond %{HTTP_HOST} !^www\.presents4friends\.com$
RewriteCond vergleicht die Angabe in
Host: (alias %{HTTP_HOST}) mit dem Muster. Das Dollarzeichen markiert das Textende, d.h. soll das Muster mit dem gegebenen Text übereinstimmen, muss da, wo das Dollarzeichen steht, der Text zu Ende sein. Das Muster "bla$" (lies: "bla am Ende") würde auf "bla" oder "blobla" passen, aber nicht "blablo". Das Muster "bla" passt hingegen auf alle drei Beispiele, weil nicht gesagt ist, wo "bla" im Text vorkommen soll.
^ ist übrigens das Gegenstück zu $, es markiert den Textanfang. "^bla" (lies: "Textanfang, gefolgt von bla") passt demnach auf "bla" und "blablo", aber nicht auf "blobla". Und "^bla$" passt zu guter Letzt nur auf "bla".
Während "^www\.presents4friends\.com$" also nur auf "
www.presents4friends.com" passt, würde "^www\.presents4friends\.com" auch bei
www.presents4friends.comtralala oder
www.presents4friends.com.example.de passen. Theoretisch ist deshalb die Variante mit $ besser, praktisch hat's keine Auswirkungen, weil Dein Server vermutlich mit nichts großartig anderem als dieser Domain angesprochen wird.
Die Weiterleitungsart wird mit dem R in den eckigen Klammern bei RewriteRule angegeben. Mit R=301 gibt's eine
permanente Weiterleitung, ohne Code eine
vorübergehende.
Bitte auch mal in die
Anleitung schauen, bevor man was benutzt. Da ist zwar nicht alles zum Thema Perl-kompatible Muster erklärt, aber die Grundlagen durchaus. Und die Funktion von [R] sowieso.