2009-05-08 19 views
5

Probleme mit der richtigen regex Nachdem für RewriteCondWie Unterverzeichnisse in RewriteCond übereinstimmen?

RewriteCond %{REQUEST_URI} !^/foo/ 

funktioniert wie erwartet, das heißt, gilt nicht für alle URLs folgende Umschreibungs, die mit/foo/starten.

RewriteCond %{REQUEST_URI} !^/foo/bar/ 

Auf der anderen Seite funktioniert nicht so, wie ich es erwarte. URLs, die mit/foo/bar/beginnen, werden immer noch neu geschrieben.

Wie gebe ich die richtige Regex für ausschließende Unterverzeichnisse ein?

+0

Wie die tatsächlichen Regeln aussehen mögen? – Gumbo

+0

Es sollte funktionieren. Kannst du ein RewriteLog mit einem RewriteLogLevel von mindestens 3 setzen und es zu deiner Frage hinzufügen? –

Antwort

7

Vielleicht ist es die neue URL einer internen Weiterleitung, auf die die Regel angewendet wird. Die L flag macht das.

[...], wenn die RewriteRule eine interne Umleitung erzeugt (die häufig auftritt, wenn in einem Pro-Verzeichniskontext Umschreiben), wird dies die Anforderung einzuzuspritzen und bewirkt, dass die Verarbeitung von den ersten RewriteRule beginnend wiederholt werden.

Wenn Sie sicherstellen möchten, dass die ursprüngliche URL-Pfad nicht mit „/ foo/bar“ brachte starten, klicken Sie die request line (siehe THE_REQUEST variable) statt:

RewriteCond %{THE_REQUEST} !^[A-Z]+\ /foo/bar/ 
RewriteRule … 
+0

Weiß nicht, wie und warum aber das funktioniert – edgars

+0

@Gumbo: Könnten Sie bitte genau erklären, die Regexp Sie in Ihrem Vorschlag verwendet? Es funktioniert auch für mich, und ich denke, es stimmt mit dem ersten GET überein, kann aber das nachfolgende '/' nicht verstehen und der Grund, warum es keine Domain gibt '/ foo/bar /' – Stratboy

+0

@Stratboy Ich habe gehofft die verlinkten Seiten erkläre alles. Nun, das Muster '^ [A-Z] + \/foo/bar /' überprüft die HTTP-Anforderungszeile, wie sie vom HTTP-Parser des Servers gesehen wird, und die Bedingung ist nur wahr, wenn das Muster nicht übereinstimmt. Vielleicht ist es das '' ', das dich ablenkt, aber das ist immer noch Teil des Musters. – Gumbo

Verwandte Themen