Mod rewrite: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 42: Zeile 42:
=Quellen=
=Quellen=
[http://www.modrewrite.de/  modrewrite Webseite mit Erklärung der Syntax sowie einigen Beispielen] Stand 14.07.2008
[http://www.modrewrite.de/  modrewrite Webseite mit Erklärung der Syntax sowie einigen Beispielen] Stand 14.07.2008
[http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html  Apache Dokumentation] Stand 14.07.2008
[http://de.selfhtml.org/servercgi/server/rewrite.htm  Self-Html Erklärung mit Beispielen] Stand 14.07.2008

Version vom 14. Juli 2008, 23:49 Uhr

Definition

Mod_Rewrite ist ein Modul für den weitverbreiteten Open-Source Webserver Apache. Durch die Verwendung von Regulären Ausdrücken können Anfragen gezielt umgeleitet werden bzw. verändert werden. Ebenso ist es möglich den Inhalt gezielt an verschiedene Betrachter bzw. Bots anzupassen.

Verwendungsmöglichkeiten

Die Anweisungen werden bei den meisten Shared-Hosting in die .htaccess Datei geschrieben die sich im entsprechenden Verzeichnis auf dem Server befinden muss. Diese können natürlich auch fest in der Apache Konfigurationsdatei eingerichtet werden.

Benutzerfreundliche URLs / Suchmaschinenoptimierung

Im Gegensatz zu www.domain.tld/galerie/bild/thumb/show.php?id=4&mod=2&uid=7 ist es mittels der Rewrite-Engine überhaupt kein Problem diesen Aufruf benutzerfreundlicher und vor allem optimiert für eine Suchmaschine zu gestalten.

Beispiel:

RewriteEngine on
ReWriteRule ^([0-9]+)_?([0-9]+)\.html$ index.php?pics=$1&navigation=$2 [NC,L]

In diesem Beispiel wird der Aufruf index.html?pics=4&navigation=35 durch einen direkten Aufruf der Datei 4_35.php ersetzt.

Änderung der Dateiendung

Mittels des Umschreibens der Anfragen können dynamische Seiten leicht nach aussen hin versteckt werden. Da das aufrufen von .php Dateien im Web immer ein wenig unschön aussieht, lässt sich mit diesem Befehl

RewriteRule ^(.*).html$ $1.php

Beispielsweise jede .php Datei virtuell als .html Datei aufrufen. Diese Lösung wäre jedoch eleganter gelöst mittels eines ReWrite-Tags in der .htaccess Datei.

Ein weiteres Beispiel für die Änderung der Dateiendung ist die dynamische Generierung von Bildern. So lässt sich hinter einer .jpg Datei beispielsweise ein Script verstecken das bei jedem Aufruf die aktuelle IP Adresse des Betrachters anzeigt.

Ein Beispiel hierfür wäre:

RewriteRule ^(.*).jpg$ index.php?id=$1 [NC]

Hierbei wird in Wirklichkeit ein PHP-Skript ausgeführt dass eine JPG Grafik zurückliefert.

Filterung nach User Agent

Mittels Mod_Rewrite lassen sich auch ganze User-Agents oder IP-Bereiche filtern. Diese Seiten können gezielt umgeleitet und manipuliert werden. Ein mögliches (wenn auch unschönes) Beispiel wäre hierbei die Erzeugung einer speziellen Seite die lediglich ein Suchmaschinen-Bot zu Gesicht bekommt.

Quellen

modrewrite Webseite mit Erklärung der Syntax sowie einigen Beispielen Stand 14.07.2008 Apache Dokumentation Stand 14.07.2008 Self-Html Erklärung mit Beispielen Stand 14.07.2008