Am 1. Februar 2009 12:58 schrieb Manfred Rebentisch <mrebenti...@comparat.de>: > Der Apache schaut per Default nach, ob ein Verzeichnis oder eine Datei (v.a. > DirectoryIndex) existiert.
Ja, allerdings macht er beim Feststellen ob es eine Datei oder ein Verzeichnis ist (r->finfo.[...]), zunächst noch nichts (core map_to_storage hook). Sollte ein Handler per SetHandler zugewiesen sein, so wird mod_dir unter Apache 2.0 und 2.2 (anders 1.3 und derzeit trunk) auch bei Verzeichnisaufrufen nicht nach Index-Dokumenten suchen. > Andernfalls erscheint im Log: > > File does not exist: /var/www/gemuese/gruenkohl Das kommt vom default_handler. Der läuft immer dann, wenn kein anderer Handler zugewiesen wurde (werden konnte). > (Hier ist /var/www/gemuese das DocumentRoot Verzeichnis und "gruenkohl" das > nicht existierende Verzeichnis. Forderst du '/gruenkohl/foo.html' an, '/var/www/gemuese/gruenkohl/' existiert nicht als Verzeichnis, dann ist '/foo.html' path-info. Setzt du nunmehr einen Handler über 'AddHandler foo-handler html', wird dieser nicht zugewiesen, da path-info unberücksichtigt bleibt und das letzte als Datei behandelte Segment 'gruenkohl' keine Dateiendung 'html' besitzt. Das ist über die Direktive 'ModMimeUsePathInfo' in Apache 2.x konfigurierbar. Setzt du den Handler über SetHandler, besteht dieses Problem nicht (Vers. 1.3.x könnte sich anders verhalten, kA.). > Ich bräuchte das DocumentRoot fast garnicht, da der Handler alle Requests > behandeln könnte. Warum baust du dann keinen kleinen - translate_name-hook, welcher r->uri auf r->filename kopiert - map_to_storage-hook, welcher den directory_ und file_walk umschifft (also OK zurückgibt, ohne etwas zu tun; sollen kontextlose Anfragen wie TRACE berücksichtigt werden, so müsste das hier erfolgen) Damit hättest du das Dateisystem quasi "abgestellt", da alles nur noch URL-path basiert läuft. <directory> und <files>-Abschnitte und .htaccess-Dateien werden dann natürlich auch nicht mehr verarbeitet, d.h. du müsstst auf <location> ausweichen. Alles, was dateisystembasiert ist (DirectoryIndex, trailing slash bei Verzeichnissen, mod_autoindex etc.) funktioniert dann natürlich auch nicht mehr; das müsste dein Handler dann berücksichtigen, den du dann am besten per SetHandler involvierst. Bob -------------------------------------------------------------------------- Apache HTTP Server Mailing List "users-de" unsubscribe-Anfragen an users-de-unsubscr...@httpd.apache.org sonstige Anfragen an users-de-h...@httpd.apache.org --------------------------------------------------------------------------