Hubert Seidl: RewriteRule

Hallo, Forum,

offenbar bin ich zu blöde, um folgendes Problem alleine zu lösen:

Mit diesen Zeilen in meiner .htaccess-Datei versuche ich mein Session-Handling in den Griff zu bekommen:

RewriteEngine on
RewriteRule ^(.*)/S=([^/]+)/(.*)    $1/$3 [E=SESSION:$2]

Eine solche Url:
http://www.server.de/S=abc123/index.php

würde dann behandelt wie:
http://www.server.de/index.php

und der Wert "abc123" in der Variablen $SESSION verfügbar gemacht.

Das klappt auch schon ganz prima! Rufe ich aber die URL:
http://www.server.de/S=abc123/

auf (also ohne index.php dahinter), so haut die RewriteRule offenbar daneben:
"The requested URL /S=abc123/ was not found on this server."

Damit ich Spekulationen schon mal vorbeuge:
Der Aufruf von http://www.server.de/ klappt hervorragend, der DirectoryIndex ist richtig gesetzt, die index.php wird also gefunden.

Was mache ich falsch?

Ich danke vielmals für Eure Hilfe,
Hubert

  1. hallo

    RewriteEngine on
    RewriteRule ^(.*)/S=([^/]+)/(.*)    $1/$3 [E=SESSION:$2]

    Damit ich Spekulationen schon mal vorbeuge:
    Der Aufruf von http://www.server.de/ klappt hervorragend, der DirectoryIndex ist richtig gesetzt, die index.php wird also gefunden.

    richtig, dafür gibt es keine regel und der pfad existiert.

    Eine solche Url:
    http://www.server.de/S=abc123/index.php

    richtig, dafür gibt es eine regel.

    Rufe ich aber die URL:
    http://www.server.de/S=abc123/
    auf (also ohne index.php dahinter), so haut die RewriteRule offenbar daneben:
    "The requested URL /S=abc123/ was not found on this server."

    richtig, dafür gibt es auch keine regel und der pfad existiert auch nicht.

    RewriteRule ^(.*)/S=([^/]+)/    $1/ [E=SESSION:$2]

    grüsse, raik