Wenn von Weiterleitungen im Web Gebrauch gemacht wird, dann meist aus zwei verschiedenen Gründen, die da wären:

  1. Umzug der Domain auf einen anderen “Sendeplatz”
  2. 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:

1 | equinox schrieb am 05.04.2007 um 10:13
Gravatar dieses Kommentators

Super! Danach habe ich gesucht. Danke!

2 | Christian schrieb am 05.04.2007 um 12:14
Gravatar dieses Kommentators

Gern geschehen :)

3 | Matthias schrieb am 06.05.2007 um 00:22
Gravatar dieses Kommentators

Danke für die Anleitung, nach dieser Methode habe ich nun auch nach einem Umzug die Domain weitergeleitet.

4 | Christian schrieb am 06.05.2007 um 20:46
Gravatar dieses Kommentators

Nichts zu danken, aber ich danke für die Erwähnung :)

5 | Christoph schrieb am 23.09.2007 um 05:39
Gravatar dieses Kommentators

Ich würd noch gern erwähnen, dass nicht alle automatische Weiterleitungen aktiviert haben und man daher per se immer zumindest einen kleinen Link auf die Seite packen sollte ;-)
Der Status-Header ist irgendwie auch überflüssig. So spontan hab ich den auch nicht im RFC gefunden…

6 | Christian schrieb am 23.09.2007 um 12:00
Gravatar dieses Kommentators

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.

7 | Christoph schrieb am 23.09.2007 um 17:50
Gravatar dieses Kommentators

Ich bin mir nicht mehr sicher: Erzeugt Apache auch noch die Standard-Header-Seiten, wenn die Header von PHP kommen? Dachte, die Seite käme nur, wenn sie z.B. direkt per mod_rewrite erzeugt würden.

8 | Christian schrieb am 23.09.2007 um 20:39
Gravatar dieses Kommentators

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.

9 | Starflame schrieb am 11.03.2009 um 22:38
Gravatar dieses Kommentators

Google —> “apache automatische domainweiterleitung”

1. Ergebnis 1. Klick —> Volltreffer

Klasse! Danke!

10 | Vince schrieb am 04.06.2009 um 13:39
Gravatar dieses Kommentators

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? :)

11 | MBDealer schrieb am 14.08.2009 um 13:18
Gravatar dieses Kommentators

Ich würde jedenfalls versuchen die alte Dateistruktur aufrecht zu halten bzw. die alten URLs auf die neuen URLs zu leiten. Alle Unterseiten auf die Startseite zu schieben kann auch nach hinten los gehen … meine Erfahrung.

12 | Mad schrieb am 02.07.2010 um 10:09
Gravatar dieses Kommentators

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.



Blogsuche

RSS-Feeds

Plaste & Plastik

plasteundplastik.de - Das Geocaching-Weblog

Die Kategorien


Netz-Fundstücke


Meta / Propaganda