Fork me on GitHub

Web Development

Ein Lehrbuch für das Informatik oder Medien-Informatik Studium.

Das Apache-Modul mod_rewrite erlaubt das Umschreiben der URL. Normalerweise verweist die URL direkt auf eine Datei im Filesystem. Dabei wird nur die Apache-Konfigurationsanweisung DocumentRoot verwendet um den Hauptordner des Servers festzulegen:

<VirtualHost ich.multimediatechnology.at>
  DocumentRoot /home/stud007/public_html/
</VirtualHost>

Die URL http://ich.multimediatechnology.at/mini/index.php verweist auf die Datei /home/stud007/public_html/mini/index.php

Mit mod_rewrite kann man die URL komplett von der Struktur des Filesystems trennen. Wenn man die mod_rewrite - Regeln in eine .htaccess -Datei im Ordner mini schreibt dann gelten diese Regeln natürlich nur für URLs die mit http://ich.multimediatechnology.at/mini/ beginnen. Das Endergebnis der Umschreibung wird schliesslich ganz normal als URL interpretiert.

RewriteEngine On
RewriteRule ^personen$     personen.php  [L]

Diese Datei enthält eine Regel. Jede Regel besteht aus einem Suchmuster und einer neuen Schreibweise für die URL. Die erste Regel verwandelt die URL

http://ich.multimediatechnology.at/mini/personen in die neue URL http://ich.multimediatechnology.at/mini/personen.php

RewriteRule ^person/(.*)   person.php?pid=$1  [L]

Das Suchmuster dieser Regel enthält runde Klammern. Diese dienen dazu einen Teil der URL einzufangen und später als Variable wieder zu verwenden. Damit verwandelt diese Regel die URLs

  • http://ich.multimediatechnology.at/mini/person/1
  • http://ich.multimediatechnology.at/mini/person/2
  • http://ich.multimediatechnology.at/mini/person/gigsi/gagsi/gugsi

in folgende neue URLs:

  • http://ich.multimediatechnology.at/mini/person.php?pid=1
  • http://ich.multimediatechnology.at/mini/person.php?pid=2
  • http://ich.multimediatechnology.at/mini/person.php?pid=gigsi/gagsi/gugsi