Immer wieder habe ich während meiner Arbeit mit der Frage zu tun – „Wie richte ich eine 301 Weiterleitung, das sogenannte 301-Redirect ein?“

Dazu habe ich mir einmal ein paar Gedanken gemacht, ein kleines Videotutorial erstellt und Euch die wichtigsten Code-Snippets aufgelistet. Ausserdem werde ich Euch hier zum Thema 301 redirect  ein paar Beispiele einfügen, denn es kommt öfters vor das man mit diesem Thema konfrontiert wird und man immer wieder einmal den Code dazu braucht.

Die einfachste Möglichkeit und die gebräuchlichste Methode ist wohl, die 301 Weiterleitung von NON-www zu www. Aber bevor ihr Euch für eine der beiden Weiterleitungen entscheidet, solltet ihr eine eine Site-Abfrage in Google starten, um zu erfahren, mit welcher Version (NON-www oder www) Eure Webseite bei Google indexiert ist.

Abfrage bei Google nach der Anzahl Eurer indexiersten Seiten

Abfrage für NON-www

site:deinedomain.tld

Abfrage für www

site:www.deinedomain.tld

Habt ihr Euch für eine Variante entschieden, könnt Ihr damit beginnen die entsprechende 301 Weiterleitung zu erstellen.

Allerdings solltet Ihr wissen, dass die entsprechende .htaccess Datei nur auf einem Apache Server mit aktiviertem mod_rewrite funktioniert.

Wichtig für Telekom User!

Bei der Telekom ist es nicht möglich die htaccess zu bearbeiten! Solltet Ihr also Euren WordPress Blog bei der Telekom hosten wollen, lasst es, denn das funktioniert nicht. Sucht Euch unbedingt einen Provider bei dem Ihr vollen Zugriff auf die .htaccess habt!

Als erstes legt Ihr eine neue Datei mit der Bezeichnung “.htaccess” an, falls sie nicht schon standardmässig angelgt wurde. In manchen Fällen liegt diese Datei schon als htaccess.txt im Root-Verzeichnis Eures Webspaces oder auch als leere .htaccess Datei.

In der ersten Zeile wird die RewriteEngine mit der folgenden Zeile aktiviert:

RewriteEngine on

Nun ist es soweit und Ihr könnt damit beginnen die entsprechenden 301-Redirect Weiterleitungen einzutragen:

So richtet Ihr eine 301 Weiterleitung von NON-www zu www ein

RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]

oder

RewriteCond %{HTTP_HOST} !^www.deinedomain.tld$
RewriteRule ^(.*)$ http://www.domainname.tld/$1 [L,R=301]
301 Weiterleitung von www zu NON- www
RewriteCond %{HTTP_HOST} ^www.deinedomain.tld$ [NC]
RewriteRule ^(.*) http://deinedomain.tld/$1 [R=301,L]
301 Weiterleitung von X zu Y
Redirect 301 /beispiel.html http://www.deinedomain.tld/beispiel/

Sicher ist es Euch schon des öfteren passiert, das Eure Domain auch über die index.html bzw. index.php erreichbar ist. Entsprechend ist Eure Startseite über unterschiedliche URLs aufrufbar, wie z.B.

www.deinedomain.tld & www.deinedomain.tld/index.html oder www.deinedomain.tld/index.php

Auch diese URI´s könnt Ihr, mit Hilfe einer 301-redirect Funktion via .htaccess Datei, zur Hauptdomain umleiten.

Hier findet Ihr die 301 Weiterleitung der index.html oder index.php zu Eurer Hauptdomain

Für die index.html oder index.php gilt dann folgendes:

RewriteCond %{THE_REQUEST} ^[A-Z]+ /index.html
RewriteRule ^index.html/?(.*) /$1? [L,R=301]
RewriteCond %{THE_REQUEST} ^[A-Z]+ /index.php
RewriteRule ^index.php/?(.*) /$1? [L,R=301]

301 Weiterleitung  von Duplicate Content (DC) Domains zu Eurer Haupt-Domain & NON-www zu www

RewriteCond %{HTTP_HOST} !^www.deinedomain.tld$
RewriteCond %{HTTP_HOST} !^www.deinedomain1.tld$
RewriteCond %{HTTP_HOST} !^www.deinedomain2.tld$
RewriteRule ^(.*)$ http://www.deinedomain.tld/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^www.deinedomain1.tld$ [NC]
RewriteRule ^(.*)$ http://www.deinedomain.tld/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.deinedomain2.tld$ [NC]
RewriteRule ^(.*)$ http://www.deinedomain.tld/$1 [R=301,L]

Weitere Möglichkeiten einer 301 Weiterleitung via PHP und Query

Wer noch etwas tiefer in die Materie einsteigen will und eine spezielle Möglichkeit sucht wie man eine 301-Weiterleitungen via PHP einrichtet, wird hier fündig.