Wofür überhaupt Weiterleitungen?



Welche Arten von Weiterleitungen sind möglich?


Beim Nameserver (DNS):

A-RR (Resource Record)

ist streng genommen keine Weiterleitung und macht nur Sinn, wenn bei Ausfall eines Servers auf einen Backup-Server geleitet werden soll.

domain.tld.  IN  A  123.456.789.123

Der Eintrag muss in der DNS-Verwaltung des Providers erfolgen, bei dem die Domain (genannt Zone) registriert ist. "domain.tld" muss dem Server der adressierten IP als VirtualHost bekannt sein.

CNAME-RR

ist keine Weiterleitung sondern ein Alias. Beachte: CNAMEs should only be used if you can't use an A Record. CNAME erfordert immer zwei Zugriffe zur Adressauflösung und es gibt so gut wie immer eine Möglichkeit, dies zu vermeiden.

alias.tld.  IN  CNAME  canonical.tld.       (canonical = eindeutig)

"alias.tld" verweist über den CNAME-RR auf "canonical.tld" und dieser wird über den A-RR der "canonical.tld" zur IP aufgelöst, der Request lautet aber auf "alias.tld" ! Suchmaschinen und Browser sehen deshalb nur den Alias. Der Alias muss dem Server der adressierten IP als VirtualHost bekannt sein.


Beim Client (Browser):

HTML

<meta http-equiv="refresh" content="0; URL=http://...">

Das ist die Weiterleitung für Faule oder Unwissende.

javascript

<script language ="JavaScript"><!--
window.location.replace('http://...');
// --></script>

Diese Umleitung macht nur Sinn, wenn Javascript dazu eine Bedingung prüft, die zur Weiterleitung führen soll. Außerdem muss Javascript im Browser aktiviert sein, sonst funktioniert die Weiterleitung nicht.


Beim Webspace-Server:

PHP

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://...");
exit;
?>

Suchmaschinen übernehmen bei "301" die Verweise und das Ranking von der alten auf die neue Location (URL), der Browser zeigt in der Adresszeile die neue Location (URL).

Temporäre Weiterleitung erfolgt mit: "HTTP/1.1 307 Temporary Redirect"

.htaccess

• Redirect auf einfachen Prefix "/"

RewriteEngine on
Redirect  301  /  http://...

• RedirectMatch ist wie Redirect aber auf regulären Ausdruck "^/$"

RewriteEngine on
RedirectMatch  301  ^/$  http://...

• RewriteRule auf regulären Ausdruck "^.*"

RewriteEngine on
RewriteRule  ^.*  http://...  [L,R=301]

Suchmaschinen übernehmen bei "301" die Verweise und das Ranking von der alten auf die neue URL, der Browser zeigt in der Adresszeile die neue URL.

Temporäre Weiterleitung erfolgt mit: "307"

Hier landen wir beim Thema mod_rewrite, dem ich eine eigene Seite widmen muss.