Liebe Selfer,
ich habe auf meinem Webspace (Apache) ein geschütztes Unterverzeichnis (root/a/b/c) in welchem sich eine index.html befindet. Diese index.html enthält einen meta-refresh auf eine script.php im selben Verzeichnis. Die Ausgabe der script.php muss unbedingt Passwort-geschützt sein, daher habe ich sie in ein solches Verzeichnis abgelegt.
Mein mod_rewrite biegt alle Requests auf HTML-Dateien um. Diese landen dann bei einer zentralen index.php, die den Request-Pfad auswertet, um entsprechend zu reagieren. Bei index.html-Dateien, in welchen ein meta-refresh enthalten ist, wird anhand einer Liste geprüft, ob diese sich in einem geschützten Unterverzeichnis befinden, um im gegebenen Fall eine Seite mit einem entsprechenden Hinweis auszugeben, unter dem dann der Link auf die im refresh angegebene Datei steht. In diesem speziellen Fall geht es um script.php.
Übersicht der drei Dateien:
root/a/index.php
root/a/b/c/index.html
root/a/b/c/script.php
Wenn jetzt meine "root/a/b/c/index.html" im Browser aufgerufen wird, dann kommt sofort die Passwortabfrage, die ja genau dann _nicht_ sein soll, da über die zentrale index.php erst ein Hinweis auf ein solches Passwort ausgegeben werden soll. Die index.html wird ja auch nicht ausgegeben, sondern der Request landet per mod_rewrite bei der index.php, die - nach erfolgter Passworteingabe - dann auch brav den nun obsoleten Hinweis auf das Passwort ausgibt.
Es war mir schon einmal gelungen, dass ein Hinweis ohne Passwortabfrage ausgegeben wurde, aber da ich nicht sicher weiß, ob am Server etwas geändert wurde, oder ob es an einer Änderung meiner Scripte liegt, möchte ich gerne mehr über die innere Funktionsweise des Apachen wissen.
Daher meine Frage: Was wird beim Request auf eine Datei zuerst ausgeführt? Die Prüfung auf Passwörter oder mod_rewrite?
Die Doku-Seite zu mod_rewrite ist so komplex, dass ich dort von alleine nicht durchsteige. Daher danke ich allen, die mir hier weiterhelfen können.
Liebe Grüße aus Ellwangen,
Felix Riesterer.