On 17/04/13 20:33, Lentes, Bernd wrote:
habe noch einige Fragen zu mod_rewrite. Ich beziehe mich auf die Beispiele in http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html . Fangen wir mit dem Beispiel im Server-Kontext an:
Given Rule resulting substitution ^/somepath(.*) otherpath$1 invalid, not supported
Ist das invalid, weil otherpath ohne Pfad angegeben wurde und man daher nicht weiß, wo otherpath sein soll ?
ja.
2. Beispiel: ^/somepath(.*) /otherpath$1 /otherpath/pathinfo Passt, da das result einen Pfad hat. Ist der absolut oder relativ zu DocumentRoot ?
"/otherpath/pathinfo" ist ein Filename. Also genau wie bei Alias, nix DocRoot.
DirectoryContext: ^localpath(.*) otherpath$1 /somepath/otherpath/pathinfo otherpath wird an die RewriteBase angehangen, passt. Oder ?
"/somepath/otherpath/pathinfo" ist hier *kein* Filename, sondern eine URI.
Deine Frage zu RewriteBase konnte ich nicht parsen. Daher eine
Erklärung, wozu RewriteBase gebraucht wird.
Wenn Deine Dokumente alle unter DocumentRoot liegen, brauchst Du kein
RewriteBase. Dann passiert nämlich folgendes:
URI /a/b/c wird zu Filename /Doc/Root/a/b/c. In
^localpath(.*) /otherpath$1 /otherpath/pathinfo Da /otherpath angegeben wurde, wird die RewriteBase ignoriert. Oder ?
Ja. Aber wie schon gesagt, "/otherpath/pathinfo" wird als URI interpretiert und praktisch als neuer Request durch das System geschleust. Bernd, es geht nicht nur Dir so. Als ich so um das Jahr 2000 rum das erste mal mit mod_rewrite experimentieren durfte, habe ich RewriteBase auch nicht verstanden. Ich habe damals alles im Server-Context gemacht und Dir-Context gemieden wie der Teufel das Weihwasser. Ich glaube, erst, wenn Du im Prinzip weißt, wie der Apache einen Request bearbeitet - die Phasen, von denen ich letztes mal gesprochen habe, und wenn Du weißt, was diese Phasen machen, und wenn Du zusätzlich weißt, dass mod_rewrite ausschließlich r->filename bearbeitet, erst dann kannst Du RewriteBase wirklich verstehen. Vorher bleibt das schwammig. Eine recht gute Doku zum Thema findest Du bei mod_perl: http://perl.apache.org/docs/2.0/user/handlers/http.html Torsten -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org