WaBis

walter.bislins.ch

Error404: Dateiformat (redir.txt)

Die Weiterleitungen des Error404-Moduls sind in einer Datei gespeichert. Die Einträge in der Datei müssen den folgenden Regeln entsprechen:

Regeln

  • Es gibt einzeilige oder zweizeilige Weiterleitungen
  • Zwischen zwei Weiterleitungen dürfen beliebige Leerzeilen stehen
  • Die Weiterleitungen werden von oben nach unten abgearbeitet. Daher sollten allgemeinere Weiterleitungen nach speziellen Weiterleitungen stehen.

Syntax

Eine Weiterleitung hat die folgende Syntax:

Quelle -> Ziel

oder zweizeilig

Quelle
-> Ziel
Quelle
Pfadanteil einer URL, welche weitergeleitet werden soll (also ohne http://www.mydomain.com/).
Ziel
Zielpfad bezüglich dem Home-Verzeichnis, an den eine URL weiter geleitet werden soll.

Suchverfahren

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:

  1. Zunächst werden Domain-Anteil und Parameter aus der URL entfernt (→ folder/subfolder/page.html)
  2. Dann von oben nach unten Quelle für Quelle mit diesem Eintrag verglichen.
  3. Stimmt eine Quelle mit dem Pfad überein, wird zum entsprechenden Ziel weitergeleitet.
  4. Stimmt keine Quelle überein, wird vom Pfad der letzte Teil abgeschnitten (→ folder/subfolder) und ab Schritt 2 wiederholt, bis der Pfad leer ist.

Wurde keine Übereinstimmung mit einer Quelle gefunden, wird die konfigurierte Fehlerseite (im Beispiel system/page_not_found.asp) gerufen.

Ziel Verarbeiten

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.

Beispiele

Weiterleitung einer Permanent URL

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.

Weiterleitung auf ein umbenanntes Verzeichnis

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.

Weiterleitung mit Parametern

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

Weitere Möglichkeiten

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"

Weitere Infos zur Seite
Erzeugt Dienstag, 20. April 2010
von wabis
Zum Seitenanfang
Geändert Freitag, 16. Mai 2014
von wabis