Eine Weiterleitung hat die folgende Syntax:
Quelle -> Ziel
oder zweizeilig
Quelle -> Ziel
Wenn eine ungültige URL der Form http://www.mydomain.com/folder/subfolder/page.html vorliegt, geht das Error404-Modul wiefolgt vor um eine passende Weiterleitung zu finden:
Wurde keine Übereinstimmung mit einer Quelle gefunden, wird die konfigurierte Fehlerseite (im Beispiel system/page_not_found.asp) gerufen.
Wenn eine Übereinstimmung gefunden wird, so wird das entsprechende Ziel wiefolgt verarbeitet:
Wenn Ziel mit einem ? endet, werden die in Schritt 1 entfernten Parameter ans Ziel angehängt. Aus dem relativen Ziel-Pfad wird zudem ein absoluter Pfad gebildet, wobei berücksichtigt wird, ob die URL eine virtuelle URL war (z.B. ein Unterverzeichnis bei einer Subdomain).
Dann wird zur Seite Ziel weitergeleitet.
Es soll die folgende Permanent-URL weitergeleitet werden:
http://www.mydomain.com/doku/myproject
an eine Wiki-Seite im folgenden Verzeichnis:
http://www.mydomain.com/projekte/index.asp?page=MyProject
Die entsprechende Weiterleitung sieht folgendermassen aus:
doku/myproject -> projekte/?page=MyProject
Bei Ziel kann man direkt das Verzeichnis angeben (ohne Domain und ohne führenden Schrägstrich). Da index.asp die Default-Seite dieses Verzeichnisses ist, muss sie bei Ziel nicht angegeben werden.
Angenommen wir haben ein Verzeichnis /fs auf dem Webserver nach /fsim umbenannt und wollen nun, dass alle alten URL's auf das neue Verzeichnis umgeleitet werden. Der entsprechende Eintrag in der Weiterleitungs-Datei sieht wiefolgt aus:
fs -> fsim
Mit diesem Eintrag werden alle URL's, die auf das Verzeichnis /fs oder ein Unterverzeichnis von fs weisen, an die Default-Seite im Verzeichnis /fsim weiter geleitet. Zum Beispiel
http://www.mydomain.com/fs/part1/page4.html
wird weitergeleitet zur Seite (index.html sei die Default-Seite):
http://www.mydomain.com/fsim/index.html
Damit werden nicht individuelle Seiten wie /fs/part1/page4.html an ihre entsprechende neue Zielseite /fsim/part1/page4.html weitergeleitet, sondern nur an die Start-Seite des Projektes /fsim/index.html. Dies ist aber immer noch besser, als eine Fehlermeldung. Zudem kann man nun die einzelnen Seiten auch problemlos umbenennen oder die Unterverzeichnisse umstrukturieren, ohne dass alte URL's ins Leere zeigen.
Möchte man einzelne Seiten dennoch an spezielle neue Seiten weiterleiten, kann man die entsprechenden speziellen Einträge einfach vor dem allgemeinen Fall aufführen:
fs/part1/page4.html -> fsim/part1/page4.html fs -> fsim
Die spezielle URL auf die Seite /fs/part1/page4.html wird jetzt an die entsprechende Seite im neuen Verzeichnis weiter geleitet, alle anderen URL's /fs/... werden auf die Default-Seite weitergeleitet.
Wenn Webseiten Parameter benötigen, wie zum Beispiel bei CMS oder Wikis, so kann man durch Anhängen eines ? an Ziel das Error404-Modul anweisen, die Parameter der ungültigen URL an das Ziel anzuhängen.
Angenommen es wurde ein Wiki vom Verzeichnis
http://www.mydomain.com/wiki/aviatik/wiki.asp
verschoben nach
http://www.mydomain.com/aviatik/index.asp
Individuelle Seiten werden über einen Parameter der Form ?page=Seitenname abgerufen. Eine Weiterleitung zum neuen Verzeichnis sieht nun folgendermassen aus:
wiki/aviatik -> aviatik/?
In der Quelle muss wiki.asp nicht aufgeführt werden, es werden sowieso alle URL's mit diesem Verzeichnis weitergeleitet. Da index.asp die Default-Seite ist, muss sie in Ziel ebenfalls nicht angegeben werden. Das ? in Ziel bewirkt, dass die Parameter der ungültigen URL ans Ziel angehängt werden. Aus
http://www.mydomain.com/wiki/aviatik/wiki.asp?page=Airbus
wird
http://www.mydomain.com/aviatik/index.asp?page=Airbus
Als Weiterleitungs-Datei kann auch eine WaBis-Wiki-Seite verwendet werden, welche neben den reinen Weiterleitungs-Daten auch anderen Text enthalten kann. Das Error404-Modul filtert daraus die Weiterleitungs-Daten heraus, wenn sie zwischen den Makros {{data}} und {{end data}} und dort innerhalb der Tags <code> und </code> stehen:
{{data}} <code> fs -> fsim </code> {{end data}}
Das Verwenden einer Wiki-Seite hat den Vorteil, dass Weiterleitungen direkt per Wiki auf dem Webserver verwaltet werden können. Der Pfad zur Wiki-Seite mit den Redirect-Daten kann in error404.asp mit den Konstanten REDIRECT_FOLDER und REDIRECT_FILE eingestellt werden und das zugehörige Wiki gibt man bei REDIRECT_EDITOR an (siehe Referenz).
Beispiel
const REDIRECT_FOLDER = "../../wiki_secure/pages/work" const REDIRECT_FILE = "Spezial: Redirect Data" const REDIRECT_EDITOR = "work/index.asp?page=Spezial%3A+Redirect+Data"