wahsaga: mod_rewrite Problem

hi,

hab ein kleines problem mit mod_rewrite, welches ich mir nicht so recht erklären kann.

inhalt meiner .htaccess-datei:

RewriteEngine On
RewriteBase /
RewriteRule ^blog/([0-9]+)$ blog/$1/ [R,L]
RewriteRule ^blog/([0-9]+)/$ request.php?id=$1

erste regel bewirkt, dass
http://localhost/blog/5
per redirect umgeleitet wird auf
http://localhost/blog/5/

zweite regel bewirkt dann anschliessend, dass
http://localhost/blog/5/
intern umgeschrieben wird zu
http://localhost/request.php?id=5

"funzt" auch soweit - request.php wird ausgeführt, kontrollausgabe von $_GET['id'] ergibt 5.

wenn ich im doc root jetzt aber auch noch eine datei namens blog.php liegen habe (http://localhost/blog.php), erhalte ich beim versuch des aufrufes von
http://localhost/blog/5 oder
http://localhost/blog/5/

jetzt plötzlich einen 404er.

kann mir das jemand erklären?

es scheint wohl so zu sein, dass ihn das vorhanden-sein einer blog.php beim aufruf des pseudo-verzeichnisses blog/ durcheinander bringt - aber wieso?

habe ich irgendwas in der mod_rewrite doku übersehen?
darf/kann man per mod_rewrite keine solches pseudo-verzeichnis realisieren, wenn es eine datei gleichen namens (plus endung .php, wohlgemerkt) gibt?

mein indianer ist ein apache 1.3.28 unter win xp.

gruss,
wahsaga

  1. hi,

    ergänzung:

    ich sehe gerade, dass im error log folgender eintrag erzeugt wird, wenn ich versuche auf http://localhost/blog/6/ zuzugreifen:

    [Tue Mar 09 21:19:51 2004] [error] [client 127.0.0.1] File does not exist: h:/apache/apache/htdocs/blog.htm/6/

    OK, eine datei namens blog.htm gibt es auch noch im verzeichnis.
    und siehe da, sobald ich diese umbenenne (xblog.htm), tritt der fehler nicht mehr auf!
    es war also die blog.htm, die ihn hier in verbindung mit dem pseudo-verzeichnis blog/ gestört hat.

    aber wieso?
    wieso wird trotz meiner rewrite-rule versucht, auf blog.htm/6/ zuzugreifen?

    gruss,
    wahsaga

    1. [Tue Mar 09 21:19:51 2004] [error] [client 127.0.0.1] File does not exist: h:/apache/apache/htdocs/blog.htm/6/
      aber wieso?
      wieso wird trotz meiner rewrite-rule versucht, auf blog.htm/6/ zuzugreifen?

      Multiviews.

      H.

      1. hi,

        Multiviews.

        danke, das war's!

        gruss,
        wahsaga