dedlfix: mod_rewrite macht mich fertig ...

Beitrag lesen

Hi!

Eine Rule erzeugt gleich mehrere Einträge, denn zu ihrer Abarbeitung sind - wie du sicher bemerkt hast - eine ganze Reihe von Schritten notwendig. Das "add path info postfix" ist eins der ersten Schritte, kann aber auch mehrfach vorkommen.

ich bin darüber gefallen, als ich herausfinden wollte, wie es sich wohl auswirken würde, wenn ich statt alle RewirteRules unter:
/Users/heinetz/Sites/example/.htaccess
... zu definieren, den letzten Teil davon in eine:
/Users/heinetz/Sites/example/public/.htaccess
zu schieben. Beim Vergleich beider rewrite_logs wird mir nicht klar, nach welcher Logik bzw. Reihenfolge die Regeln dann abgearbeitet werden.

Die Pfadangabe bei "add path info postfix" ist vielleicht etwas verwirrend. Bei

add path info postfix: /Users/heinetz/Sites/example/_content -> /Users/heinetz/Sites/example/_content/content.php

befindet sich der Apache im Verzeichnis "example" und möchte gern den nächsten Pfad-Teil "_content" auflösen. Deshalb geht der Teil links vom "->" nur bis "_content". Die RewriteRule hingegen möchte gern alles betrachten, weswegen als erstes der für den normalen Apache-Prozess uninteressante Teil "/content.php" angefügt wird, bevor die weitere Auswertung der Regel beginnt.

Aus den letzten beiden Angaben dieses linken Teils kann man nun erkennen, was der normale Apache-Prozess tun wollte.

Wenn ich in meinen Versuchen eben keinen Fehler gemacht habe, dann ignoriert mod_rewrite beim Vorhandensein einer RewriteRule in einem Verzeichnis alle Regeln von übergeordneten Verzeichnissen. Also dürftest du keine Vermischung der Regeln sehen, sondern lediglich die Verzeichnissituation aus den letzten beiden Pfadbestandteilen der Angabe links vom "->" wiederfinden.

Lo!