
Wenn von Weiterleitungen im Web Gebrauch gemacht wird, dann meist aus zwei verschiedenen Gründen, die da wären:
- Umzug der Domain auf einen anderen “Sendeplatz”
- Ein und die selbe Seite sollen von verschiedenen Domains aus erreichbar sein
Im Grunde bedeuten jedoch beide Weiterleitungen das gleiche:
Der Content soll über mehr als eine Domain erreichbar sein.
Und hier liegt meist das Problem: Dublicate Content, also ein und der selbe Inhalt unter verschiedenen Adressen, ist von Google und auch anderen Suchmaschinen nicht gerne gesehen.
Doch nicht nur Suchmaschinen interessieren Weiterleitungen, auch Besucher die sich z.B. Bookmarks zu einer bestimmten Unterseite angelegt haben, sollten nach einem Domainumzug noch auf die richtige Seite gelangen.
Um eine optimale Weiterleitung sowohl für Suchmaschinen als auch die Besucher zu erreichen, habe ich bei einem meiner letzten Kundenprojekte auf eine Kombination aus einer index.php und .htaccess-Datei mit einigen mod_rewrite-Funktionen gesetzt.
Um diese Art der Domainumleitung zu erreichen, ist es zu allererst notwenig, alle sekundären Domains auf ein anderes Root-Verzeichnis auf dem Webspace zu dirigieren, wie zb. /_forward/. In diesem Verzeichnis erstellt man nun sowohl eine .htaccess-Datei, als auch eine index.php
Die index.php
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Status: 301 Moved Permanently");
header("Location:http://www.deinedomain.de");
header("Connection:close");
exit;
?>
Diese Weiterleitung sorgt dafür, dass Besucher und Suchmaschinen die auf die Startseite zugreifen wollen, direkt auf die Startseite der neuen Domain umgeleitet werden. Für die Suchmaschinen ist hierbei der Statuscode 301(Moved Permanently) wichtig. Er weist darauf hin, das die angesprochene Adresse nun dauerhaft unter einer neuen Adresse erreichbar ist. Das ist in sofern wichtig, als dass somit alle Indexeinträge und mögliche Pageranks auf die neue URL übertragen werden.
Normale Weiterleitungen senden meist einen 302 Statuscode, was jedoch oft nicht zum gewünschten Ergebnis führt.
Die .htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.deinedomain\.de$
RewriteRule ^(.*)$ http://www.deinedomain.de/$1 [L,R=301]
</IfModule>
Diese Datei (die im übrigen nur mit aktiviertem mod_rewrite-Modul funktioniert) sorgt für die Weiterleitung aller Unterseiten und Ordner. Gibt ein Besucher (oder eine Suchmaschine) nun z.B. altedomain.com/links.html in der Adressleiste ein, so würde er automatisch auf die URL www.deinedomain.de/links.html umgeleitet. Für die lieben Suchmaschinen wird auch hierbei der Statuscode 301 ausgegeben.
Wer die alte Dateistruktur nach einem Umzug nicht beibehalten hat bzw. konnte, und nun alle alten Adressen auf die Startseite der neuen Adresse umleiten möchte, der sollte in der 4. Zeile die Zeichen /$1 löschen.
Zum Überprüfen der Ergebnisse kann ich euch nur Web-Sniffer empfehlen.
Kommentare zum Thema Die optimale Domainweiterleitung:
Mir ist ehrlich gesagt kaum noch ein Browser bekannt der simple <span class=“caps”>HTTP</span>-Header-Weiterleitungen nicht versteht oder deaktiviert hat.
Wenn ich mir zudem ansehe was ein Apache bei einem 302 ausgibt, so sieht das folgendermaßen aus:
<html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href=“http://www.hackthenet.de/”>here</a>.</p> </body></html>
Also wenn es wirklich noch jemanden ohne Weiterleitung geben sollte ist auch automatisch für diesen gesorgt.
Um ehrlich zu sein ist mir gerade aufgefallen das die index.php im Prinzip nutzlos ist wenn man das obere mod_rewrite-Script einsetzt, da dieses ja auch die Startseite abfängt, von daher wäre es denke ich egal.
Du wirst aber recht haben, bei einer Headermanipulation via PHP dürfte der normale HTML-Output ja eigentlich nicht verändert werden.
Google —> “apache automatische domainweiterleitung”
1. Ergebnis 1. Klick —> Volltreffer
Klasse! Danke!
Vielen Dank! Hab auch schon länger nach dem richtigen “Code” gesucht.
Kann ich damit auch www. domain .de/xyz zu www. domain .de/123 umleiten? Also einzelne Adressen, das wäre für mich die ultimative Lösung..
Hast du da vielleicht nen kleinen Tipp zu? :)
Funktioniert bei mir nicht – verstehe aber irgendwie nicht was ich flasch mache (bin kein Programmierer)
Ich habe den Code für die htaccess unten an die originale htaccess angefügt und eine index.php mit dem angegebenen Inhalt erstellt. Der websniffer liest die Umleitung auch aus – nur lande ich bei Eingabe der umzuleitenden URL immer auf der webseite eines hosters. Reichen die Infos schon für einen Verdacht wordran es liegen könnte? Danke schon mal.
Kommentar-Feed für diesen Artikel
Kommentarfunktion für diesen Artikel geschlossen.

Super! Danach habe ich gesucht. Danke!