Bob: .htaccess RewriteRule

Beitrag lesen

^([^/]+/.+) = beginnt mit 1 oder n Zeichen ohne Slash, gefolgt von einem Slash, gefolgt von 1 oder n beliebigen Zeichen

Warum soll das denn nicht mit einem Slash beginnen?

Das ist eine einfache Prüfung, ob zumindest ein Unterverzeichnis vorliegt. Natürlich könntest du auch .*/.* notieren, allerdings könnte die Regel im Hinblick auf das Backtracking (laut PCRE manual kommt es bei der PCRE-Bibliothek zum Backtracking) nicht so performanceoptimiert sein.

Taucht denn bei example.com/irgendwas/nochwas der Slash fürs Rule auf? Ich dachte, dann wäre "irgendwas/nochwas" die URL die rewritten würde.

Ja, genau, im Verzeichniskontext prüfst du gegen irgendwas/nochwas. Der Teil [^/]+/ passt auf irgendwas/ und .+ auf den Rest rechts davon.

Und warum muss ein Slash folgen?

Der OP möchte nur Unterverzeichnisse behandelt wissen. Sonst würde die Regel auch auf foo, foo.bar im aktuellen Verzeichnis passen.