301 Weiterleitung

Wenn Webseiten umbenannt werden, oder eine Website auf eine andere Domain umzieht, kann man von den alten Dateien auf die neuen mit einem sogenannten permanent Redirect (301 Redirect) weiterleiten. Diese Art der Weiterleitung wird auch von der Suchmaschine Google empfohlen, im Gegensatz zu einer temporären Weiterleitung (302, vergleiche auch Problematik um URL-Hijacking).

Eine 301 Weiterleitung kann man auf unterschiedliche Weise realisieren

1. als einfache Anweisung in der .htaccess

http://www.alte-domain.de/bla.html wird auf http://www.neue-domain.de/bla.html weitergeleitet

in der .htaccess im Verzeichnis http://www.alte-domain.de/ wird dazu folgendes eingetragen:


Redirect permanent /bla.html http://www.neue-domain.de/bla.html

2. mit der Funktion header() in PHP

die Datei http://www.alte-domain.de/bla.html hat folgenden Inhalt:


<?php 
header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://www.neue-domain.de/bla.html"); 
header("Connection: close"); 
?>

3. mit Mod_rewrite in der .htaccess

wenn http://www.alte-domain.de/bla.html auf http://www.neue-domain.de/bla.html umzieht und http://www.alte-domain.de/blubb.html auf http://www.neue-domain.de/blubb.html, kann man mit folgender Regel in der .htaccess weiterleiten:


RewriteEngine On 
RewriteRule ^(.*)\.html$ http://www.neue-domain.de/$1.html [R=301,L]

06.02.2005 23:07 | geändert: 06.02.2005 23:10


Ich habe nun ein CMS in einem verzeichnnis www.meine-seite/cms/ auf dem Server liegen. Bis jetzt benutze ich eine einfache index.html im root mit dem tag "refresh" für die Weiterleitung auf obenstehendens Verzeichnis.

Habe ich das nun richtig verstanden das dieser Weg nicht empfohlen wird sondern die Variante 1. "einfache Anweisung i der .htacces"?

Oder wie wird das sonst gelöst? Gibts es bei einem CMS da nicht Besonderheiten?

Vielen Dank und Viele Grüße
Bastian

18.04.2005 18:31


Hallo Bastian,

eine 301 Weiterleitung ist auf jeden Fall besser als ein meta refresh, in diesem Fall funktioniert die Variante 1. möglicherweise aber nicht

Redirect permanent / http://www.meine-seite.de/cms/

bei mir verursachen solche Weiterleitungen vom Wurzelverzeichnis jedenfalls einen Fehler 500 "Bad Script Request"

Falls Mod_rewrite auf deinem Server möglich ist, sollte es folgendermaßen gehen (Variante 3):

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/$ [OR] 
RewriteCond %{REQUEST_URI} ^/index\.html$ 
RewriteRule ^.*$ http://www.meine-seite.de/cms/ [R=301,L]

Noch besser als eine 301 Weiterleitung ist es allerdings, das CMS direkt im Root unterzubringen, falls möglich

18.04.2005 20:07 | geändert: 18.04.2005 20:10


hallo, zu dem thema hab ich eine frage, wäre super wenn ihr mir helfen könntet.

ich habe eine domain mit integriertem shop, diesen shop habe ich nun auf eine eigene domain ausgelagert. nun möchte ich alle "alten" shopseiten auf die neuen umleiten. mit einer .htaccess kriege ich es nicht hin da ja der großteil der alten domain bestehen bleibt.

nun möchte ich die weiterleitung direkt in die html seiten einbauen. geht das mit einer 301 weiterleitung?

wenn ja, wie muss das genau aussehen?
(ich bin technisch ein esel!)

gruß
rb

25.06.2005 12:04


Hallo redbull,

ich nehme an, der Shop war auf der alten Domain in einem eigenen Verzeichnis untergebracht? bleibt die alte Link-Struktur des Shops auf der neuen Domain erhalten? wenn ja, so sollte man relativ einfach mit mod_rewrite umleiten können (sofern mod_rewrite auf dem Server möglich ist)

die .htaccess im Shopverzeichnis der alten Domain könnte dann in etwa so aussehen:


RewriteEngine On

RewriteBase /shopverzeichnis/ 
RewriteRule ^(.*)$ http://www.neue-domain.de/$1 [R=301,L]

für "shopverzeichnis" den Namen des alten Verzeichnisses und für "www.neue-domain.de" den Namn der neuen Domain einfügen (falls der Shop auch auf der neuen Domain in einem Unter-Verzeichnis installiert ist, entsprechend "http://www.neue-domain.de/shop-verzeichnis/$1"); danach testen, ob die Weiterleitung funktioniert

nun möchte ich die weiterleitung direkt in die html seiten einbauen. geht das mit einer 301 weiterleitung?

Das ginge z.B. mit PHP, wie unter Punkt 2. beschrieben

25.06.2005 13:08 | geändert: 25.06.2005 13:14


hi jörg, herzlichen dank für die schnelle antwort. leider liegen die shopseiten im hauptverzeichnis. aber wenn das mit dem php geht sollte das ja gelöst sein. werde dass probieren.

danke vorerst

25.06.2005 13:45


hallo, so wie es aussieht kann ich das php script nicht verwenden weil ich mit html seiten arbeite?

gibt es noch eine andere möglichkeit eine saubere 301 weiterleitung für bestimmte seiten einer domain zu realisieren?

schöne grüße

27.06.2005 13:05


Die .html Seiten sind statisch, d.h. die URLs sind nicht durch mod_rewrite aus .php oder .cgi Seiten erzeugt?

Bei echten .html Seiten sehe ich je nach Gegebenheiten noch zwei Möglichkeiten:

1. den Server anweisen, dass er auch .html Seiten durch den PHP Parser schickt, das habe ich in diesem Thread beschrieben:

PHP in .html Dateien

Da es kein altes Shopverzeichnis gibt, auf das man diese Anweisung beschränken könnte, würde der Server diese in bezug auf alle .html Seiten ausführen, siehe auch Svens Anmerkung

2. falls die Shopseiten auf der alten Domain sich gegenüber den anderen Seiten eindeutig anhand des/der Dateinamen oder der Query Strings identifizieren lassen, könnte man damit mod_rewrite Weiterleitungsregeln in der .htaccess definieren

27.06.2005 13:30


das ist mir zu hoch, da reichen meine kenntnisse nicht aus. was passiert denn eigentlich wenn ich die shopsiten auf der alten domain einfach lösche?

28.06.2005 00:07


Für die erste Lösung benötigst du keinen besonderen Kenntnisstand. Du musst entweder folgende Zeile in die .htaccess eintragen:

AddType x-mapp-php4 .html .htm

oder, falls dies nicht funktionieren sollte, folgende Zeile:

AddType application/x-httpd-php .html .htm

Danach wird das PHP auch in Dateien mit der Endung .html verarbeitet

Für die zweite Lösung würde ich dir natürlich helfen, Voraussetzung ist, dass ich die Struktur der alten und neuen Domain kenne

was passiert denn eigentlich wenn ich die shopsiten auf der alten domain einfach lösche?

Dann erhält der Googlebot voraussichtlich die Fehlermeldung "404", d.h. "nicht gefunden". Wenn noch irgendwelche Links auf die gelöschten Seite zeigen, wird er wieder kommen, um zu sehen, ob die Seiten zwischenzeitlich wieder da sind. Wenn alle externen Links auf die neue Domain geändert wurden, wird er das Interesse an den verlorenen Seietn auf der alten Domain verlieren. Der Vorteil einer 301 Weiterleitung wäre, dass Google weiß, dass die Seiten nicht (vorübergehend) nicht auffindbar, sondern endgültig umgezogen sind, und dass Links, die noch auf die Shopseiten auf der alten Domain zeigen, automatisch für die neue Domain gewertet werden.

28.06.2005 00:34