Viele Websites sind sowohl über http://domain.de/ (ohne www), als auch über http://www.domain.de/ (mit www) aufrufbar. Allerdings sollte man sich unbedingt für eine der beiden Varianten entscheiden, denn ansonsten können Probleme bei der Indexierung der Webseite durch Suchmaschinenbots entstehen.
Weiterleitung von nicht www. auf www.
Damit eine automatische Weiterleitung auf die www. Adresse erfolgt, wenn die Webseite mit nicht www. aufgerufen wird, müssen Sie lediglich folgenden Codeschnipsel in die .htaccess Datei Ihres Webprojekts einfügen:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.de$ [NC]
RewriteRule ^(.*)$ https://www.domain.de/$1 [L,R=301]
</IfModule>
Die Weiterleitung funktioniert jetzt wie folgt:
http://domain.de wird auf http://www.domain.de weitergeleitet.
https://domain.de wird auf https://www.domain.de weitergleitet.
Bei diesem Beispiel wird allerdings nicht die Weiterleitung von http auf https berücksichtigt. Deswegen empfehlen wir noch zusätzlich die Weiterleitung von http auf https
Weiterleitung auf www. mit Berücksichtigung des Sicherheitsprotokolls (https)
Damit sowohl die Weiterleitung auf www, als auch die Weiterleitung auf https aktiv wird, müssen Sie den folgenden Codeschnipsel in die .htaccess Datei Ihres Webprojekts einfügen:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.de$ [NC]
RewriteRule ^(.*)$ https://www.domain.de/$1 [L,R=301]
RewriteCond %{SERVER_PORT} !=443
RewriteRule ^(.*)$ https://www.domain.de/$1 [R=301,L]
</IfModule>
Die Weiterleitung funktioniert jetzt wie folgt:
http://www.domain.de wird auf https://www.domain.de weitergeleitet.
http://domain.de wird auf https://www.domain.de weitergleitet.
https://domain.de wird auf https://www.domain.de weitergeleitet.
Weiterleitung von www. auf nicht www.
Wenn Sie die Schreibweise ohne www. bevorzugen, können Sie natürlich das Weiterleitungsziel entsprechend anpassen. Dafür müssen Sie einfach die URL Angabe bei "RewriteRule" anpassen und auf die Version ohne www. verweisen:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain.de$ [NC]
RewriteRule ^(.*)$ http://domain.de/$1 [L,R=301]
</IfModule>
FAQ
Sollte die Weiterleitung nicht funktionieren, könnte Sie noch eine alternative Redirect-Regel ausprobieren. Ersetzen Sie dafür die Zeile RewriteCond %{SERVER_PORT} !=443 durch RewriteCond %{HTTPS} !=on. Dadurch wird statt dem Serverport, nur der HTTPS-Parameter abgefragt. Sollte es dennoch nicht funktionieren liegt das wahrscheinlich an der Konfiguration des Servers bei Ihrem Provider (Hosting-Anbieter). Hierfür sollten Sie einen Experten hinzuziehen.
Die Weiterleitung funktioniert generell nicht?Dann könnte das Modul "mod_rewrite" inaktiv sein. Das wird über die Abfrage "IfModule" geprüft. Dieses Server-Modul gehört bei den meisten modernen Servern zum Standard und ist normalerweise immer vorhanden. Ist das der Fall, wird die Redirect-Regel ausgeführt. Ist das Modul tatsächlich nicht vorhanden, greift auch die Redirect-Regel nicht und die Abfrage sorgt dafür, dass dadurch zumindest kein Server-Fehler entsteht. Für die Lösung sollten Sie einen Experten hinzuziehen.