Domain-Weiterleitung via HTML, PHP, JavaScript und .htaccess

Bei großen Webprojekten spielen Domain-Weiterleitungen (Redirects) eine entscheidende Rolle. Die Möglichkeit, den Traffic einer Webpage auf eine andere umzuleiten, hilft Webseitenbetreibern dabei, Besucherströme zu lenken und Umstrukturierungen auf der Website vorzunehmen. Außerdem können Sie über Weiterleitungen identische Inhalte unter verschiedenen Domains verfügbar machen, ohne dass dies als Duplicate Content gewertet wird. Zudem ist die Domain-Weiterleitung ein effizientes Werkzeug des Indexierungsmanagements bei der Suchmaschinenoptimierung. Dabei stehen im Webseitenbetrieb verschiede Optionen zur Auswahl, eine Domain oder Subdomain auf einen beliebigen anderen Bereich der eigenen Webpräsenz oder eine externe Adresse umzuleiten. Gängig sind Weiterleitungen via .htaccess, PHP-Script, HTML-Meta-Tag und JavaScript.

Domain-Weiterleitung im Webseitenbetrieb

Grundsätzlich dienen Redirects dazu, Servern mitzuteilen, dass Webseiteninhalte von einer URL auf eine andere umgezogen sind. Dies ist vor allem dann essenziell, wenn die ursprüngliche Webadresse Ziel eines eingehenden Links ist, als Lesezeichen auf dem Rechner eines Besuchers gespeichert wurde oder sich bereits prominent in der Suchmaschine platzieren konnte. In diesem Fall übermittelt die Weiterleitung einem Browser oder Webcrawler, dass der gesuchte Inhalt verschoben wurde, und verweist auf die neue Adresse. Andernfalls würden Webseitenbesucher statt der angeforderten Webpage lediglich eine 404-Fehlerseite angezeigt bekommen. Vor allem bei kommerziellen Webprojekten möchte man dies natürlich verhindern. Insbesondere Onlineshops bieten ein stetig wechselndes Produktsortiment, das sich in einer Vielzahl einzelner Webpages widerspiegelt. Ist ein Artikel nicht mehr verfügbar, werden potenzielle Kunden einfach auf eine Webpage mit ähnlichen Produkten weitergeleitet. So lassen sich Besucherströme effizient lenken und Absprünge minimieren. Eine Domain-Weiterleitung ermöglicht es zudem, ein und denselben Inhalt unter verschiedenen Webadressen zugänglich zu machen. Sämtliche Alternativadressen werden dabei einfach auf die priorisierte Domain der Website umgeleitet.

Domain-Weiterleitungsarten

Grundsätzlich unterscheidet man zwischen serverseitigen und clientbasierten Weiterleitungen. Während bei der serverseitigen Domain-Weiterleitung ein entsprechender HTTP-Status-Code an den User-Agent (Browser oder Webcrawler) übermittelt wird, erfolgen clientbasierte Weiterleitungen ohne eine solche Rückmeldung. Letztere werden daher nicht von allen User-Agents unterstützt. Unter Umständen bleiben Besucher somit auf der ursprünglich aufgerufenen Seite und werden nicht zum neuen Ziel weitergeleitet. Die serverseitige Realisation ist daher in der Regel vorzuziehen. Clientbasierte Lösungen bieten sich nur an, wenn eine serverseitige Domain-Weiterleitung aufgrund technischer Einschränkungen nicht umgesetzt werden kann.

Serverseitige Weiterleitung

In den meisten Fällen erfolgt die serverseitige Domain-Weiterleitung über die Konfigurationsdatei .htaccess oder über ein PHP-Script. Der Vorteil dieser beiden Methoden ist, dass man individuell definieren kann, welcher HTTP-Status-Code an den User-Agent ausgegeben werden soll. Dies ermöglicht Webseitenbetreibern, Domain-Weiterleitungen als permanent oder temporär zu kennzeichnen. Relevant sind in diesem Zusammenhang vor allem die HTTP-Status-Codes 301 und 302:

  • 301 – Moved Permanently: Die vom User-Agent angeforderte Ressource ist dauerhaft unter der in der Umleitung genannten URL verfügbar. Die alte URL ist fortan ungültig.
  • 302 – Moved Temporarily: Die vom User-Agent angeforderte Ressource ist vorübergehend unter der in der Umleitung genannten URL verfügbar. Im Gegensatz zum 301-Code bleibt die ursprüngliche URL trotz Weiterleitung gültig.

Wird der HTTP-Status-Code nicht explizit definiert, übermittelt ein Webserver bei einer serverseitigen Weiterleitung standardmäßig den Status-Code 302. Dies ist nicht immer gewollt. Es empfiehlt sich daher, bei jeder Weiterleitung den gewünschten Status-Code manuell einzutragen, um Indexierungsfehler wie das URL-Hijacking zu vermeiden. Anders als die 301-Weiterleitung vermittelt der Status-Code 302 einem Webcrawler, dass die ursprüngliche URL weiterhin indexiert bleiben soll. Beim dauerhaften Betrieb konkurriert die Weiterleitungsadresse mit dem Weiterleitungsziel im Suchmaschinenindex.

SEO Tipp

Die Verwendung einer korrekten Weiterleitung sorgt für den Erhalt Ihrer Google Rankings und beugt möglichen Trafficverlusten vor.

.htaccess-Umleitung

Bei .htaccess handelt es sich um eine Konfigurationsdatei für den Apache-Webserver, mit der sich die zentrale Konfiguration auf Verzeichnisebene überschreiben lässt. Diese Datei ermöglicht es Webseitenbetreibern, verzeichnisspezifische Einstellungen für eine Domain und deren Unterverzeichnisse vorzunehmen. Eine Funktion der .htaccess-Datei ist die serverseitige Domain-Weiterleitung einzelner zu einem Webprojekt gehörender Adressen auf andere URLs.

Legt man eine .htaccess-Datei mit folgendem Code im Hauptverzeichnis an, werden Anfragen an die ursprüngliche Domain serverseitig zur Domain „www.beispiel.de“ umgeleitet:

Redirect 301 / http://www.beispiel.de/

Die Codezeile beginnt mit „Redirect 301“ und legt damit den vom Server zu übermittelnden HTTP-Status-Code fest. Darauf folgt der Pfad zu den Inhalten, die weitergeleitet werden sollen. In diesem Fall alle, wie der Schrägstrich festlegt. Den Abschluss bildet die vollständige Adresse der Ziel-URL, auf die der User-Agent umgeleitet werden soll: „http://www.beispiel.de“.

Mit dieser Methode lassen sich auch einzelne Dateien umleiten. Folgender Code zeigt einen Redirect von einer Webpage auf eine andere:

Redirect 301 /verzeichnis/beispiel-dokument.html http://www.beispiel.de/beispiel.html

Nach dem HTTP-Status-Code 301 wird der Verzeichnispfad der Datei genannt, die permanent umgeleitet werden soll („/verzeichnis/beispiel-dokument.html“), sowie die Adresse des Weiterleitungsziels („http://www.beispiel.de/beispiel.html“).

Auf einem Apache-Server mit aktivem mod_rewrite-Modul sähe die permanente Weiterleitung einer beispielhaften Webpage auf eine andere URL folgendermaßen aus:

RewriteEngine On
RewriteRule ^verzeichnis/beispiel-dokument.html$ http://www.beispiel.de/beispiel.html [L,R=301]

In Codezeile 01 wird das mod_rewrite-Modul des Apache-Webservers mit dem Befehl „RewriteEngine On“ aktiviert. Dann folgt eine „RewriteRule“ mit dem Pfad der Weiterleitungsdatei sowie der Zieladresse. Caret und Dollarzeichen markieren Anfang und Ende des Pfads, L bezeichnet die letzte mod_rewrite-Regel für passende Anfragen. R=301 leitet mit HTTP-Status 301 weiter.

Bei der Konfiguration einer Domain-Weiterleitung via .htaccess ist zu beachten, dass fehlerhafte Eingaben in der Konfigurationsdatei gravierende Auswirkungen auf den Webseitenbetrieb haben. Da Änderungen direkt nach der Speicherung der .htaccess-Datei in Kraft treten, sollten entsprechende Konfigurationen in jedem Fall gründlich getestet werden.

PHP-Weiterleitung

Eine Domain-Weiterleitung kann nicht nur durch die Konfiguration via .htaccess erfolgen, sondern auch durch einen entsprechenden Befehl in einem PHP-Script (z.B. in der index.php). Folgender Code zeigt eine permanente Weiterleitung auf die fiktive Ziel-URL „www.beispiel.de“.

<?php
header("Status: 301 Moved Permanently");
header("Location: http://www.beispiel.de");
exit;
?>

Bei der Weiterleitung via PHP-Script wird der beabsichtigte HTTP-Statuscode durch die „header“-Funktion in Codezeile 02 definiert. In diesem Beispiel soll eine permanente 301-Weiterleitung umgesetzt werden. Da serverseitige Weiterleitungen standardmäßig temporär ausgeführt werden, muss man die permanente Umleitung via Status-Code 301 explizit erzwingen. Die Zieladresse der Domain-Weiterleitung wird in Codezeile 03 ebenfalls mit „header“ hinterlegt. Die Weiterleitung im Beispiel erfolgt auf die Webadresse „http://www.beispiel.de“. Die „exit“-Funktion in Codezeile 04 beendet das Script und verhindert, dass ein nachfolgender Code ausgeführt wird. Damit die Weiterleitung via PHP-Script funktioniert, muss der Code-Block am Anfang stehen, bevor der Server eventuelle HTML-Inhalte auf der Weiterleitungsseite ausliefert.

Clientbasierte Weiterleitungen

Ist die serverseitige Umsetzung einer Domain-Weiterleitung aus technischen Gründen nicht möglich, können Webseitenbetreiber auf eine clientbasierte Lösung zurückgreifen. Dazu stehen das HTML-Meta-Tag „refresh“ sowie ein entsprechendes JavaScript zur Verfügung. Der Nachteil einer clientbasierten Weiterleitung ist, dass der Server keinen HTTP-Status-Code an den anfragenden Browser oder Webcrawler ausliefert. Dieser wird also nicht explizit auf die Weiterleitung hingewiesen. Des Weiteren werden clientbasierte Weiterleitungen nicht von allen User-Agents unterstützt, weswegen die Gefahr besteht, dass einige Seitenbesucher nicht umgeleitet werden.

Nachteilig wirken sich clientbasierte Weiterleitungen auch auf die Indexierung durch Suchmaschinen aus. Ein explizierter Ausschluss von der Indexierung durch den entsprechenden HTTP-Status-Code 301 erfolgt bei clientbasierten Weiterleitungen nicht. Daher kann es beim Suchmaschinenranking dazu kommen, dass die Weiterleitungsdomain in Konkurrenz zur Zieldomain tritt. Im Gegensatz zu serverseitigen Weiterleitungen, die für den Nutzer abgesehen vom Adresswechsel in der Browserzeile nahezu unsichtbar bleiben, gehen clientbasierte Weiterleitungen immer mit einer Verzögerung einher, die dem Nutzer durchaus auffallen kann.

SEO Tipp

Weiterleitungsketten sollten vermieden werden. Zu viele davon können die Ladezeiten der Seite erhöhen.

Weiterleitung via HTML-Meta-Refresh

Die HTML-Meta-Weiterleitung wird durch Meta-Tags mit dem Attribut „http-equiv“ umgesetzt. Dazu müssen Sie lediglich eine einfache HTML-Datei mit dem passenden Tag im Header zur Weiterleitung erstellen. Um den Seitenbesucher auf die Umleitung hinzuweisen, sollte ein entsprechender Hinweistext im HTML-Dokument angelegt werden. Gängig sind Einzeiler wie „Sie werden in wenigen Sekunden weitergeleitet“. Eine einfache Domain-Weiterleitung via HTML-Meta-Refresh auf eine fiktive Beispieladresse zeigt der folgende Code:

<meta http-equiv="refresh" content="10; url=http://www.beispiel.de/">

Durch das Meta-Tag http-equiv="refresh" wird der Client zur Domain-Weiterleitung aufgefordert. Wie diese erfolgt, lässt sich im Content-Attribut definieren. Im Beispiel ist eine Weiterleitung nach zehn Sekunden auf die Zieldomain „www.beispiel.de“ vorgesehen.

JavaScript-Weiterleitung

Eine einfache Möglichkeit der clientbasierten Domain-Weiterleitung bietet JavaScript. Doch ähnlich wie beim Meta-Tag „refresh“ sollten Sie JavaScript-Weiterleitungen nur im Einzelfall verwenden, da die Skriptsprache aus Sicherheitsgründen eventuell nicht von jedem Webbrowser unterstützt wird. Probleme bereiten JavaScript-Weiterleitungen zudem für Webcrawler und Nutzer mit aktiven NoScript-Addons. Eine klassische Domain-Weiterleitung via JavaScript zeigt der folgende Code:

<script> 
<!--
window.location.replace('http://www.beispiel.de'); 
//-->
</script>

Von Bedeutung ist hier vor allem die Codezeile 03. Im Beispielcode wird das Objekt „window.location“ genutzt, um auf die aktuelle Webseitenadresse zu verweisen. Der Befehl „replace“ weist den Browser an, den Nutzer auf die in Klammern definierte Zieldomain „www.beispiel.de“ weiterzuleiten.


Auf dem Laufenden bleiben?

Jetzt zu unserem Newsletter anmelden und
gratis Online-Marketing Whitepaper
sichern.