Zum Inhalt springen

mod_rewrite: nur ([0-9]+)[.]([0-9]+).html$ geht

Erstellt am 29. September 2003 · 3 Antworten · letzte Antwort am 30. September 2003

Tags: Frage

obottek ·

Habe ein komisches Problem. Habe im Apache (Linux, 1.3.20) in der httpd.conf folgendes eingetragen:

RewriteRule ^[^/]*.html$ /index.php

Dies funktioniert nicht - .html-Dokumente enden immer mit einem 404. Wenn ich allerdings folgendes nehme:

([0-9]+)[.]([0-9]+).html$ /index.php?id=$1&type=$2

So funktioniert dies. Ich gehe also einmal davon aus, dass alle Pfade und Settings in Typo okay sind. Die Site in Apache ist eine eigene virtuelle Site - ein RewriteBase-Pfad ist nicht definiert, da direkt auf das Verzeichnis mit der index.php gezeigt wird.

Nun ist das mit den ganzen hardcoded Parametern "([0-9]+)..." etwas unkomfortabel - man muss zum Beispiel immer den Type mit angeben. Noch schlimmer wird es, wenn auch noch die Titel der Seiten in der URL dazukommen. Deshalb meine Frage, ob irgendwer von Euch eine Idee hat, wieso erstere Variante nicht funktioniert.

Grüße,
Olaf

Chip ·
obottek schrieb

Habe ein komisches Problem. Habe im Apache (Linux, 1.3.20) in der httpd.conf folgendes eingetragen:

RewriteRule ^[^/]*.html$ /index.php

Dies funktioniert nicht - .html-Dokumente enden immer mit einem 404.

Schau doch mal ins Access-Log, wie die Seite denn schlussendlich heisst, wenn sie aufgerufen wird.

Gruss - michael

obottek ·

Access log for not working scenario:

"GET /61.0.html HTTP/1.1" 404 ...

and for working scenario:

"GET /61.0.html HTTP/1.1" 200 ...

Should the slash be the problem?