Apache mod_rewrite
mod_rewrite ist ein mächtiges Werkzeug welches mit Hilfe von regulären Ausdrücken, eine Menge an
Möglichkeiten bietet. Aber auch sehr schnell unüberschaubar wird und gefährlich werden kann.
Es kann die Sicherheit eines Servers steigern aber auch neue Türen öffnen.
1. Verstecken von Dateien mit RewriteRule's
Das folgende minimalistische Beispiel zeigt, wie man mit Hilfe von RewriteRule's Dateien und Verzeichnisse verstecken kann, und an den Client-Browser eine "404 Seite nicht gefunden" Meldung sendet.
# Datei oder Verzeichniss mit dem Namen "intern" verstecken kann, und 404 Meldung ausliefern RewriteRule ^intern$ - [R=404,L] # Versteckt Datei oder Verzeichnis intern RewriteRule ^intern.*$ - [R=404,L] # Versteckt alles was mit intern beginnt RewriteRule ^intern\.html$ - [R=404,L] # Versteckt nur die Seite intern.html
Diese mod_rewrite Anweisung, können entweder in der .htaccess Datei definiert sein, oder direkt in der Apache Konfiguration (z.B. im Directory Bereich).
2. Umleiten von Dateien mit Endung .htm/.html auf Skripte
Manchmal möchte man vor dem User verstecken, mit welcher Sprache man seine Seite geschrieben hat. Hier ein kleines Beispiel, wie man sowas mit Hilfe von mod_rewrite bewerkstelligen kann.
# Leitet bei Anfrage von index.html die Anfrage auf index.php um RewriteRule ^index\.html$ index.php [L] # Leitet jede .html Anfrage auf .jsp um RewriteRule ^(.*)\.html$ $1.jsp [L] # Leitet jede Anfrage die nur mit Buchstaben beginnt # und mit .html endet auf eine .asp Seite um RewriteRule ^([A-Za-z]*)\.html $1.asp [L]
3. Alle Anfragen umleiten
Möchte man alle Anfragen umleiten, z.B. weil man gerade an der Seite arbeitet, so ist dies auch mit mod_rewrite möglich.
RewriteRule ^.*$ seite_offline.html [L] # Leitet alle Anfragen auf die Datei seite_offline.html um