.htaccess - mod_rewrite Teil 1
1. Die Abschnitte
- Einführung
- mod_rewrite Teil 1
- mod_rewrite Teil 2
- mod_rewrite Teil 3
- mod_rewrite Teil 4
- Weiterleitungen
- Aussperren Teil 1
- Aussperren Teil 2
- Zugriffsschutz Teil 1
- Zugriffsschutz Teil 2
- PHP-Einstellungen Teil 1
- PHP-Einstellungen Teil 2
- Fazit
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