- Rewrite-Engine
-
Eine Rewrite-Engine (von englisch rewrite, „umschreiben“ und engine, „Maschine“) ermöglicht es, an einen Webserver gerichtete Anfragen intern umzuschreiben oder extern weiterzuleiten. Die bedeutendste Rewrite-Engine ist das Softwaremodul mod_rewrite, das diese Aufgabe für den Apache-Webserver erledigt. Andere Webserver wie etwa Microsoft IIS, Nginx, Lighttpd oder Hiawatha Webserver bieten ähnliche Funktionen.
Geschaffen wurde diese Funktionalität, um nach außen ein von internen Faktoren unabhängiges Adressierungsschema zur Verfügung stellen zu können, sodass beispielsweise selbst bei einer Änderung der Dateihierarchie die URLs weiterhin gültig bleiben. Man spricht in diesem Fall auch von Permanentlinks.
Die Rewrite-Engines erlauben, die Adressumleitung von zusätzlichen Bedingungen neben der angefragten URL abhängig zu machen, zum Beispiel von der referenzierenden URL, der User-Agent-Kennung oder der IP-Adresse des anfragenden Clients. Auf diese Weise können beispielsweise Domainweiterleitungen oder auch Cloaking realisiert werden.
Beispielanwendung
Rewrite-Engines werden häufig genutzt, um Ressourcen mit dynamischen URLs unter Alternativadressen erreichbar zu machen.
Die Ressource mit der internen, technisch bedingten Adresse
/w/index.php?title=Rewrite-Engine
ist so beispielsweise auch unter folgender Adresse erreichbar
/wiki/Rewrite-Engine
Nach außen werden dann statt der dynamischen, parametrisierten Adressen scheinbar statische Adressen verwendet. Dies ist nützlich, da kurze, selbsterklärende Adressen meist als lesbarer, einfacher zu merken und ganz allgemein als vertrauenswürdiger eingestuft werden. Man spricht in diesem Fall auch von Clean URLs.
Eine mögliche Umsetzung des gezeigten Anwendungsfalls für das Apache-Modul mod_rewrite lautet im Serverkontext beispielsweise
RewriteEngine on RewriteRule ^/wiki/(.*)$ /w/index.php?title=$1
Im Verzeichniskontext (per .htaccess-Datei) oder beim Einsatz der
RewriteBase
-Direktive kann die konkrete Syntax unter Umständen abweichen.Weblinks
- mod_rewrite-Modul (englisch) in der Apache-Dokumentation
- ISAPI_Rewrite-Modul (englisch) für IIS
- rewrite-Modul (englisch) im Nginx-Wiki
- mod_rewrite-Modul (englisch) in der Lighttpd-Dokumentation
- Umleitungen mit mod_rewrite auf SELFHTML
- Hypertext Style: Cool URIs don't change. (englisch) von Tim Berners-Lee
Kategorien:- Konfiguration
- Apache-Projekt
- Web-Entwicklung
Wikimedia Foundation.