Fünf verschiedene Redirect Umleitungen

Für eine "Umadressierung" gibt es verschiedene Möglichkeiten. Die Gründe für den Einsatz sind vielfältig. Der folgende Beitrag stellt ein paar gängige Methoden vor.

Ouvertüre

Niemand möchte seine Besucher ins 404-Nirwana schicken. Neugierige Gäste sollen mit einem sanften Schubs auf den gewünschten Pfad zurückkehren. Und Browserweichen sorgen gelegentlich für das passende Aussehen auf dem Monitor. Für all diese Zwecke eignen sich "Redirects" sehr gut.

Meta-Refresh

Der Klassiker ist der Redirect per Meta-Refresh. Im <head>-Bereich des HTML-Dokuments wird folgende Angabe eingefügt:

<meta http-equiv="refresh" content="5; URL=index.html">

Die Zahl (im Bsp. 5) gibt die Dauer bis zum Redirect in Sekunden an. Die URL-Angabe legt den Zielort fest. Erlaubt ist ein Dateiname ggf. mit relativem Pfad oder eine URL.

.htaccess-Redirect

Wer den Apache-Webserver und den .htaccess-File zur Verfügung hat, kann problemlos umlenken. Folgender Eintrag in o.g. Datei sorgt dafür:

# Redirect-Beispiel
Redirect  permanent  /file.html  http://www.domain.de/rubrik/file.html

Folgende Variationsmöglichkeiten bieten sich an. Nach der Anweisung "Redirect" folgt eine Status-Angabe. Sinn machen in unserem Zusammenhang "permanent" (dauerhaft) oder "temp" (vorübergehend). Als nächstes wird die alte Position der Datei ausgehend vom Hauptverzeichnis angegeben. Die letzte Angabe sollte eine URL sein, die die neue Lokalität der Datei festlegt.

Weitere Details zu dieser Methode gibt es im Apache-Handbuch ("mod_alias").

PHP-Redirect

PHP verfügt über die Funktion "header", die sich für unsere Aufgabe sehr gut eignet. Allerdings darf vor dem Aufruf der Funktion kein Seitentext an den Browser gesendet werden, sonst gibt es eine Fehlermeldung.

<?php header('Location: http://'. $_SERVER['SERVER_NAME'] .'/'); ?>

Bei diesem Beispiel wird zur Startseite der Hauptdomain umgelenkt. Praktisch für einen Einsatz als "index.php"-Datei in Unterverzeichnissen, in denen der gemeine Gast nichts verloren hat. ;-)

Als Location können auch Dateinamen mit bzw. ohne relativem Pfad oder konkrete URLs verwendet werden.

Perl-Redirect

Mit Perl ist ein Umlenken auch möglich. Das klappt i.a. nur im CGI-Verzeichnis und setzt den korrekten Pfad zum Perl-Interpreter in Zeile 1 voraus. Für die eine oder andere Idee trotzdem interessant und so könnte es funktionieren:

#!/usr/bin/perl
$location = "http://www.domain.de/";
print "Status: 302 Found\n";
print "Location: $location\n";
print "URI: <$location>\n";
print "Content-type: text/html\r\n\r\n";

Die Variable $location in der 2.Zeile kann als Wert auch einen Dateinamen enthalten.

JavaScript-Redirect

Mit JavaScript lassen sich gelegentlich sinnvolle Dinge realisieren. Einziges Manko: der Besucher muss in seinem Browser JavaScript aktiviert haben. Das wird bei aller Euphorie gelegentlich vergessen. Ein einfaches Beispiel:

<script type="text/javascript">
<!--
window.location.href = "redirect.shtml";
//-->
</script>

Den Code packt man am besten in den Body-Bereich der Seite. Dann kann auch gleich der <noscript>-Bereich folgen, der im Beispiel sträflicher Weise fehlt. Dort gehört ein Link zum betreffenden Dokument rein.

Schlußwort

Die Ideen für einen Einsatz der vorgestellten Varianten sind umfangreich, speziell die Perl- und PHP-Methode können für sinnvolle Anwendungen genutzt werden. Die .htaccess-Technik sorgt für einen aufgeräumten Webaccount. Die Meta- und JS-Variante eignen sich gut für Webworker, die "Webspace" mit begrenzter technischer Ausstattung nutzen.


Deprecated: Directive 'allow_url_include' is deprecated in Unknown on line 0