verzeichnis/foo.php?bar=$1 wird durch die Regel auch wieder gematched. Wenn du (.) durch (.+) ersetzt, dann matcht er auch nur die foo.php, die wirklich ein Anhängsel haben.
RewriteRule ^verzeichnis/foo(.*).php$ /verzeichnis/foo.php?bar=$1 [B][L][/B]
RewriteRule ^foo(.*).php$ /verzeichnis/foo.php?bar=$1
Ich sehe nicht, wo sich das Ergebnis unterscheided.
Jup, das Matching betrifft nur den Dateinamen / Pfad.
Ich hab das ganze mal ausprobiert. Mit .* bleibt man an einer ewigen Weiterleitung hängen. (Sieht man auch, wenn man R=301 setzt, dann bricht der FireFox iwann. ab). Mit .+ klappt es.
Ich habs jetzt übrigens hinbekommen. Ich glaube, Dein Hinweis mit dem + war wirklich der entscheidende Tipp. Geht jetzt alles so, wie ich das will und ist eigentlich auch nicht so kompliziert - wenn man RegExps kann
[html]RewriteEngine On
RewriteRule ^information/$ /?section=information[/html]wenn ich nun meine seite aufrufe unter http://domain.de/information/ zeigt dieser mir den serverfehler 500 an. ist irgendwas falsch geschrieben oder ähnl.?
muss ich evtl. irgendwie noch in der apache cfg mod rewrite einschalten?
Wenn kein mod_rewrite angeschaltet ist (also das Modul nicht geladen wird), kommt auch kein 500er. Der Fehler kommt nur, wenn jemand das auch versucht zu parsen.