Gerd: mod_rewrite

Hallo,

ich bastele gerade an einer mod_rewrite-Regel, die folgendes abdecken soll:

  1. 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

  2. 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

  3. 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

  1. 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