mod_rewrite
Gerd
- sonstiges
0 Gerd
Hallo,
ich bastele gerade an einer mod_rewrite-Regel, die folgendes abdecken soll:
die »index.php« soll nur unter example.com/ erreichbar sein, ansonsten soll eine 302-redirect stattfinden. Also
example.com/index.php
example.com
sollen auf
example.com/
geleitet werden.
Ist noch ein Anker oder Query angehängt, so soll das ganze also lauten example.com/?query oder example.com/#anker
Anfragen der Form example.com/1/2/3/ sollen
a) immer mit einem / abschließen und ansonsten wieder mit einem 302-redirect auf diese Form gebracht werden
b) sofern keine index.html oder index.php in dem „Verzeichnis“ liegt bzw. eine gleichnamige Datei existiert soll das intern auf example.com/?query umgeschrieben werden
Anfragen der Form example.com/index.php/1/2/3/ sollen per 302-redirect auf example.com/1/2/3/ geleitet werden.
Nachfolgend meine ersten Schritte:
-----
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f # es ist keine Datei
RewriteCond %{REQUEST_FILENAME}/index.html !-f # keine index.html darunter
RewriteCond %{REQUEST_FILENAME}/index.php !-f # keine index.php darunter
RewriteRule ^(.*)$ /$1 [L] # also umschreiben
-----
Das erfüllt im wesentlichen meine Anforderung 2b) soweit ich es getestet habe.
Nun weiß ich nicht genau, wie ich das mit den abschließenden / angehen soll und eine Datei, die wirklich existiert soll natürlich auch nicht erzwungenermaßen einen / am Ende erhalten.
Des Weiteren muss ich noch das mit der index.php hinbiegen.
Wäre dankbar für einen Kommentar, ob das obige schonmal passt und Tipps, wie ich meine anderen Anforderungen erreichen könnte..
Grüße
Kein Selfer da, der mir etwas unter die Arme helfen kann?
Setze mich gerade wieder dran - werde Berichten, falls ich neue Teilziele erreicht habe.
Grüße