Thread mod_rewrite und logische Fallunterscheidung (15 answers)
Opened by cbxk1xg at 2004-04-16 16:31

cbxk1xg
 2004-04-17 18:35
#30696 #30696
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
OK. Ich habe jetzt herrausgefunden warum die Prüfung mit -s immer fehl schlug. Die RewriteBase war einfach falsch. *grrr* Und ich muss erst den Pfad mit einer anderen Regel umschreiben, um dessen Existenz zu prüfen.

Jetzt habe ich die folgenden Zeilen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{REQUEST_URI} .*/([^/]+\.htm)$
RewriteRule .* -/Cache/%1

# "$1" enthält das Ergebniss der letzten Regel und
# schreibt alles ".*" um auf "$1", wenn es existiert. Hossa!
RewriteCond $1 -s
RewriteRule .* $1 [L]

# Hier sollte Testweise alles was nicht matched
# eine andere Aktion auslösen. - GEHT ABER NICHT!
RewriteCond $1 !-s
RewriteRule .* http://foo.bar/ [L]


Aus irgendeinem Grund wird jetzt immer die zweite Regel benutzt. Aber warum (zur Hölle!) Das Flag L sollte doch alle weiteren Regeln vom Überschreiben abhalten, wenn die Regel erfolgreich war!

Und nun wieder das alte Spiel, wenn ich die zweite Regel inkl. Ihrer Cond rausnehme dann kommt die Datei aus dem Cache, wenn Sie da ist, ansonsten gibt es einen 404.

Es ist zum heulen.

View full thread mod_rewrite und logische Fallunterscheidung