Hauptmenü

Untermenü

.htaccess - mod_rewrite Teil 1

1. Die Abschnitte

2. Einführung

Mit mod_rewrite kann man URLs umwandeln. Dies ist besonders dann interessant, wenn man suchmaschinenfreundliche Links generieren möchte. So wird dann zum Beispiel aus einem index.php?cat=vorlagen ein vorlagen.htm. Dabei läuft die Verarbeitung in etwa so ab. Der Server bekommt eine Anfrage nach der Seite vorlagen.htm und wandelt die nun mit mod_rewrite wieder in ein index.php?cat=vorlagen um.

Einfach gesagt bedeutet dies, dass man aus GET-Parametern neue URLs aufbauen kann. Dies kann auch von Vorteil sein, wenn man die interne Verlinkung und Struktur eines Auftritts ändert, man aber die "alten" URLs behalten möchte.

3. Voraussetzungen

Damit das funktioniert, muss das entsprechende Modul im Apache eingebunden sein. Das findet ihr entweder über das schon mehrmals erwähnte phpinfo() heraus oder wenn möglich schaut ihr in der httpd.conf nach. Wenn dort folgender Eintrag (oder ein ähnlicher) vorhanden ist, so könnt ihr mit mod_rewrite arbeiten.


LoadModule rewrite_module modules/mod_rewrite.so

Ein Tipp

Um auf Nummer sicher zu gehen, kann man alle mode_rewrite-Anweisungen in einer "Bedingung" zusammenfassen. Sie werden nur dann ausgeführt, wenn das Modul installiert wurde.


<IfModule mod_rewrite.c>
  ... eure Anweisungen
</IfModule>

4. mod_rewrite starten

Um das Modul nutzen zu können, muss man es in der .htaccess-Datei explizit angeben. Und das geschieht mit folgender Anweisung.


RewriteEngine on

Wichtig

Alle weiteren Einträge bezüglich mod_rewrite sollten unter dieser Anweisung stehen. Man kann es auch anders machen, aber dann gibt es unter Umständen Probleme.

5. Zusätzliche Angaben

RewriteBase

Hier kann man das Wurzelverzeichnis angeben. Wichtig! Diese Angabe bezieht sich relativ zum eigentlichen Webspace, also da wo eure öffentlich zugängigen Dateien liegen. Will man nun dieses Verzeichnis als Startebene definieren, so nimmt man folgenden Eintrag vor.


RewriteBase /

Symbolische Links

Hier geht es darum, dass des Öfteren die oben genannten "Symbolischen Links" im Webserver eingestellt. Dies wird sehr gerne in Content Management Systemen eingesetzt, um die Sicherheit einer Anwendung zu erhöhen. Einfach ausgedrückt bedeutet es, dass eure Daten nicht dort liegen, wo man sie vermutet, sondern wo anders. In so einem Fall müsst ihr die folgende Anweisung in die .htaccess eintragen.


Options +FollowSymlinks

6. Zugriff verbieten

Da eine .htaccess unter Umständen wichtige Informationen beinhalten kann, sollte man auf jeden Fall den Zugriff darauf verbieten. Gut, normalerweise wird der Zugriff vom System eh schon verweigert, aber hundertprozentig sicher sein kann man da nicht. Ansonsten besteht die Möglichkeit, dass sie von außen eingelesen werden kann. Und das macht man so.


RewriteEngine on 
RewriteRule ^\.htaccess$ - [F]

Was die Details zu dieser Anweisung angeht, so werde ich euch die entsprechenden Informationen im weiteren Verlauf dieses Tutorials peu à peu präsentieren. Übt euch also ein klein wenig in Geduld.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt