Bademeister: Apache mod_rewrite-Frust

Hi,
ich habe eine Frage zum mod_rewrite-Modul.

Mein erster Versuch, per .htaccess-Datei eine RewriteRule auf ein Verzeichnis loszulassen (lokal bei mir, Windows XP und Apache 2.0), wurde zu einem elenden Kampf mit der mod_rewrite-Dokumentation, dem hiesigen Archiv und -zig Tutorials, weil sich einfach nichts tat.

Jetzt habe ich es geschafft, das Ganze zum Laufen zu bringen, indem ich in der httpd.conf die Option AllowOverride auf "All" gesetzt habe (Voreinstellung war "None").

Obwohlich jetzt erstmal glücklich bin, würde ich gerne fragen:
Ist diese Änderung in der httpd.conf notwendig? Falls nein, wie geht es sonst?
Der Hintergrund ist der, dass dies in keinem Tutorial, das ich gelesen habe, auch nur erwähnt wurde. Alle Quellen haben im Chor gesagt, ich solle mittels phpinfo() feststellen, dass mod_rewrite aktiviert ist, und das sei von technischer Seite hinreichend (die Tutorials waren auch über verzeichnisbasierte Rewrites). Ich fühle mich - bisher, gestützt auf meinen derzeitigen Kenntnisstand - einigermaßen verschaukelt, weil mir alle Tutorials lang und breit das Konzept regulärer Ausdrücke erklären, aber keines mal in zwei Zeilen verständlich hinschreiben kann, was die technischen Voraussetzungen sind. Würde mich auch sehr über eine gute disbezügliche Quelle freuen, um aus meinem neu gewonnenen Halbwissen ein echtes zu machen.

Grüße und vielen Dank,
der Bademeister

  1. Hi,

    Jetzt habe ich es geschafft, das Ganze zum Laufen zu bringen, indem ich in der httpd.conf die Option AllowOverride auf "All" gesetzt habe (Voreinstellung war "None").

    Obwohlich jetzt erstmal glücklich bin, würde ich gerne fragen:
    Ist diese Änderung in der httpd.conf notwendig? Falls nein, wie geht es sonst?

    Wenn du in .hatccess-Dateien irgendwas einstellen willst, musst du's logischerweise auch duerfen. Um das, was du da darfst, einzuschraenken, ist die AllowOverride-Direktive gedacht.

    Der Hintergrund ist der, dass dies in keinem Tutorial, das ich gelesen habe, auch nur erwähnt wurde. Alle Quellen haben im Chor gesagt, ich solle mittels phpinfo() feststellen, dass mod_rewrite aktiviert ist, und das sei von technischer Seite hinreichend (die Tutorials waren auch über verzeichnisbasierte Rewrites).

    Ob mod_rewrite selber von AllowOverride betroffen ist, weiss ich gar nicht, kann auch in der Doku keine Aussage diesbezueglich finden.

    Rewriting benoetigt aber die Einstellung Options FollowSymLinks um zu funktionieren - und wenn die nicht in der generellen Konfiguration gesetzt ist, dann muss das per .htaccess erst mal eingestellt werden, und da kommt AllowOverride dann zum Zuge.
    AllowOverride Options brauchst du dann mindestens, damit es funktionieren kann.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. echo $begrüßung;

      Ob mod_rewrite selber von AllowOverride betroffen ist, weiss ich gar nicht, kann auch in der Doku keine Aussage diesbezueglich finden.

      Das steht zur jeweiligen Direktive unter Override. Für RewriteRule wird FileInfo benötigt.

      echo "$verabschiedung $name";

      1. Hi an alle Antworter,
        danke Euch.

        Wenn du in .hatccess-Dateien irgendwas einstellen willst, musst du's logischerweise auch duerfen. Um das, was du da darfst, einzuschraenken, ist die AllowOverride-Direktive gedacht.

        Natuerlich ist es nicht schwer zu verstehen, wenn man erstmal weiss, wie es geht. Ich bin nur im Grunde ein ziemlicher Apache-Neuling. Und wenn die prinzipielle Arbeitsweise erstmal klar ist, ist uebrigens auch die mod_rewrite-Doku sehr gut, finde ich.

        Das steht zur jeweiligen Direktive unter Override. Für RewriteRule wird FileInfo benötigt.

        Das mit dem Override hatte ich auch gelesen, konnte damit aber zunaechst ueberhaupt nichts anfangen. Danke, dedlfix.

        Ich hatte tief im Inneren die Vermutung, dass ich bei den Tutorials wohl gewissen Windows/Linux-Unterschieden erlegen bin, was die Apache-Voreinstellungen angeht. Aber wahrscheinlich hatte Bob recht,

        Daran siehst du schon, dass sich die Tutorials vornehmlich an Endanwender richten, die regelmäßig keinen Zugriff auf die httpd.conf haben: Statt über LoadModule in der httpd.conf zu gehen, wird der Weg über PHP eingeschlagen.

        dass es nur ein Problem der Perspektive der Tutorials war. Na ja, ich komme ja langsam dahin, wo ich hin will. Danke Euch - wenn ich irgendwann mal wirklich Ahnung davon habe, dann schreib ich einfach selber ein vernuenftiges Tutorial ;-)

        viele Gruesse,
        der Bademeister

  2. Der Hintergrund ist der, dass dies in keinem Tutorial, das ich gelesen habe, auch nur erwähnt wurde. Alle Quellen haben im Chor gesagt, ich solle mittels phpinfo() feststellen, dass mod_rewrite aktiviert ist

    Daran siehst du schon, dass sich die Tutorials vornehmlich an Endanwender richten, die regelmäßig keinen Zugriff auf die httpd.conf haben: Statt über LoadModule in der httpd.conf zu gehen, wird der Weg über PHP eingeschlagen. Ohne Zugriff auf die httpd.conf hat sich das mit dem Setzen der „Berechtigungen“ für .htaccess-Dateien erübrigt. Letzteres ist allerdings keine mod_rewrite-spezifische Sache.

  3. Hallo,

    lokal bei mir, Windows XP und Apache 2.0 [...] Kampf mit der mod_rewrite-Dokumentation

    jetzt frage ich mich natürlich: Wenn du Apache 2.0 verwendest, warum greifst du dann auf die Doku zum 1.3er zurück? Ich weiß nicht, ob sich inhaltlich viel verändert hat, aber das gleiche Kapitel zur Version 2.0 ist zumindest bunter und hübscher. ;-)

    Ciao,
     Martin

    --
    Theorie ist, wenn jeder weiß, wie's geht, und es geht trotzdem nicht.
    Praxis ist, wenn's geht, und keiner weiß warum.
    Bei uns sind Theorie und Praxis vereint: Nichts geht, und keiner weiß warum.
    1. Hi Martin,

      jetzt frage ich mich natürlich: Wenn du Apache 2.0 verwendest, warum greifst du dann auf die Doku zum 1.3er zurück?

      Eine verdammt gute Frage ;-) Das habe ich wirklich anfangs gemacht, ohne es zu merken. Ich hab das aber irgendwann doch noch selber gemerkt - habe hier nur dennoch irgendwie den falschen Link gesetzt.

      viele Grüße,
      der Bademeister