Wie erstelle ich eine 301-Weiterleitung?

Eine 301-Weiterleitung übergibt von einem Webserver an den Anfragenden Client, z.B. dem Google-Bot oder einem User, den HTTP-Statuscodes 301 und teilt dadurch mit, dass die angeforderte Ressource (z.B. eine URL) dauerhaft verschoben wurde (engl. moved permanently) und fortan unter einer neuen URL auffindbar ist.

Eine 301-Weiterleitung kann mittels PHP oder der .htaccess-Datei und dem dafür notwendigen mod_rewrite Module des Apache Webservers ganz einfach erstellt werden.

Erstellung einer 301-Weiterleitung mit PHP

Möchte man eine 301-Weiterleitung mittels PHP einrichten, so muss das Quell-Dokument eine PHP-Datei sein. Ist diese Voraussetzung erfüllt, wird der PHP-Code zur 301-Weiterleitung direkt in das weiterzuleitende Dokument geschrieben.
 
Füge folgenden Quellcode in die erste Zeile des weiterzuleitenden Dokuments ein:

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

Funktion: Durch Einfügen des oben genannten Quellcodes in die Datei „der-alte-name.php“, aufrufbar über „domain.de/der-alte-name.php“, werden fortan alle Besucher auf die neue Quelle „domain.de/der-neue-name.php“, (Zeile 3.), weitergeleitet und der HTTP-Statuscode 301 Moved Permanently (Dauerhaft verschoben) wird übergeben.

Erstellung einer 301-Weiterleitung mittels .htaccess

Möchte man eine 301-Weiterleitung mittels der .htaccess-Datei einrichten, so ist ein Apache Webserver mit aktivierten mod_rewrite Module Voraussetzung. Da Apache der am weitesten verbreitete Webserver ist, werden nahezu alle großen Webhoster standardmäßig diesen im Einsatz haben. Auch ist das benötigte mod_rewrite Module in den meisten Fällen bereits aktiviert. Eine .htaccess-Datei ist ebenfalls bei den meisten Webhosting-Paketen vorhanden.
 
Füge folgenden Quellcode in die .htaccess-Datei ein:

RewriteEngine On
Redirect 301 /verzeichnis/ein-dokument.html http://www.domain.de/ein-dokument.html

Funktion: Durch den Befehl „RewriteEnginge On“ wird das mod_rewrite Modul des Apache Webserver angesprochen. Die zweite Code-Zeile beginnt mit „Redirect 301“ und legt den zu übermittelnden HTTP-Statuscode fest. Danach wird der Pfad zu einem Dokument angegeben, welches weitergeleitet werden soll – z.B. „http://www.domain.de/verzeichnis/ein-dokument.html“. Getrennt von einem Leerzeichen wird dahinter in die gleiche Zeile die Ziel-URL geschrieben, auf die man den Google-Bot sowie den User umleiten möchte.
In unserem Beispiel ist die Datei „ein-dokument.html“ fortan nicht mehr in dem Ordner „/verzeichnis/“ zu finden, sondern eine Ebene höher unter dem Domainnamen.

Erstellung einer 301-Weiterleitung unter NGINX, Lighttpd oder Microsoft Internet Information Services (IIS)

Für unerfahrene User ist die Einrichtung einer 301-Weiterleitung bei anderen Webservern, wie z.B. NGINX, Lighttpd oder dem IIS, nicht ganz so trivial.

Video-Erklärung von Matt Cutts / Google zu diesem Thema (engl.)

Is there a limit to how many 301 (Permanent) redirects I can do on a site?

Is there a limit to how many 301 (Permanent) redirects I can do on a site? How about how many redirects I can chain together?

Weiterführende Informationen zu diesem Thema:

Related Topics