Hi,
Korrekt. Auch bei vielen kann es interessant sein, da oft ein Schema existiert, welches man mit RewriteCond und RewriteRule leicht umsetzen kann. Es lässt sich beispielsweise leicht prüfen, ob eine assoziierte Datei existiert.
"[..] eine assoziierte Datei existiert."
Das habe ich leider nicht verstanden. Was meint man mit assoziierte Datei?
Das "normale" Verhalten des Apachen bei einem hereinkommenden Request nach /verzeichnis/datei.xyz ist, dass er schaut, ob es ein Verzeichnis namens "verzeichnis" und darin eine Datei namens "datei.xyz" gibt - wenn ja, liefert er diese aus, wenn nicht gibt's einen 404 File Not Found.
mod_rewrite bietet dir jetzt (u.a.) die Möglichkeit, Requests, zu denen keine 1:1-Entsprechung in Form von Verzeichnissen und Dateien im Dateisystem vorhanden ist, umzuschreiben - so kann ich also bspw. /weblog/artikel/2009/04/Schweinegrippe als Adresse nutzen, ohne dass es diesen Pfad physisch auf meinem Server gibt; mod_rewrite schreibt mir das auf meinen Wunsch hin in einen Scriptaufruf mit irgendwelchen GET-Parametern um, an Hand derer ich dann die Daten aus der Datenbank ziehe.
Jetzt möchte man aber oft nicht, dass bestimmte Requests umgeschrieben werden - die nach CSS-, JavaScript- und Bild-Ressourcen beispielsweise. Die liegen meist als physische Dateien vor, die kann der Apache sich direkt von der Platte holen und ausliefern - da noch mein Script "zwischenzuschalten", welches dann selber die Dateien einliest und mit passenden Headern ausgibt, wäre im Normalfall unsinnig, weil unperformant.
Also kann ich jetzt entweder meine RewriteRule(s) spezifischer formulieren - so dass sie Requests, die "Dateiendungen" wie .css etc. enthalten, nicht berücksichtigen.
Oder aber ich nutze eine/mehrere RewriteConds vor der RewriteRule, die die Anwendung dieser davon abhängig machen, ob ein Verzeichnis oder eine Datei im Dateisystem existiert, das/die zum Request "passt" - und überlasse dann in diesem Falle die Auslieferung wieder dem Standardmechanismus des Apachen.
MfG ChrisB
Light travels faster than sound - that's why most people appear bright until you hear them speak.