Jens: Index-Darstellung mit htaccess abschalten

Hallo.

Ich würde gerne mit der .htaccess eine Einstellung vornehmen, die es vemeidet, dass die Index-Darstellung des Verzeichnisinhaltes automatisch vom Apache erstellt wird, wenn keine Datei index.html oder index.php vorhanden ist.

Problem: Wenn ich in die .htaccess einfach nur
Options -Indexes
eintrage, erhalte ich einen Server-Error (bei mir läuft PHP als CGI)

Gibt es eine Einstellung, die zwar die Benutzung vorhandener index.html oder index.php erlaubt aber den automatischen Index-Aufbau (wenn keine index.html oder index.php vorhanden ist) unterbindet - und vielleicht eine Meldung wie "no access" oder sowas ausgibt?

Anwendung: Ich will das Verzeichnis mit Grafiken und PDF-Dateien einer Webseite vor dem direkten Zugriff schützen, ohne überall eine leere index.html einzusetzen.

Danke und Grüße Jens

  1. Hallo,

    Ich würde gerne mit der .htaccess eine Einstellung vornehmen, die es vemeidet, dass die Index-Darstellung des Verzeichnisinhaltes automatisch vom Apache erstellt wird, wenn keine Datei index.html oder index.php vorhanden ist.

    Gibt es eine Einstellung, die zwar die Benutzung vorhandener index.html oder index.php erlaubt aber den automatischen Index-Aufbau (wenn keine index.html oder index.php vorhanden ist) unterbindet - und vielleicht eine Meldung wie "no access" oder sowas ausgibt?

    DirectoryIndex index.shtml index.html index.htm index.cgi index.php /403.html

    (du musst in deinem document root natürlich dann auhc ein 403.html anlegen)

    Grüße
    Thomas

    --
    Surftip: kennen Sie schon Pipolino's Clowntheater?
    http://www.clowntheater-pipolino.net/
    1. Hi,

      DirectoryIndex index.shtml index.html index.htm index.cgi index.php /403.html
      (du musst in deinem document root natürlich dann auhc ein 403.html anlegen)

      wobei dann aber (bei statischer 403.html) kein Fehler-Statuscode an den Client geht.

      Und wenn Options -Indexes in der .htaccess zum Fehler führt, ist die Wahrscheinlichkeit hoch, daß auch DirectoryIndex zum Fehler führt ...

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      Schreinerei Waechter
      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. hallo Andreas,

        Und wenn Options -Indexes in der .htaccess zum Fehler führt, ist die Wahrscheinlichkeit hoch, daß auch DirectoryIndex zum Fehler führt ...

        Einmal das, und zum anderen ist es nicht möglich, mit DirectoryIndex das Indexlisting zu unterdrücken, wenn jemand einen Dateinamen kennt, der in diesem Verzeichnis liegt und diesen Dateinamen aufruft. IndexIgnore ist die Methode der Wahl.

        Grüße aus Berlin

        Christoph S.

        1. Hallo,

          Und wenn Options -Indexes in der .htaccess zum Fehler führt, ist die Wahrscheinlichkeit hoch, daß auch DirectoryIndex zum Fehler führt ...

          Nicht unbedingt, aber Andreas mag damit Recht haben.

          Einmal das, und zum anderen ist es nicht möglich, mit DirectoryIndex das Indexlisting zu unterdrücken,

          viel Spaß: <www.meta-text.net/etc/>

          wenn jemand einen Dateinamen kennt, der in diesem Verzeichnis liegt und diesen Dateinamen aufruft.

          Das ist normal. Wenn man gar nichts anzeigen will stellt man es ja nicht online.

          » IndexIgnore ist die Methode der Wahl.

          Ja, wenn man nur bestimmte Dateien/Dateitypen unterdücken will, aber nicht man man directoryIndexing verhindern will.

          Grüße
          Thomas

          --
          Surftip: kennen Sie schon Pipolino's Clowntheater?
          http://www.clowntheater-pipolino.net/
          1. hallo Thomas,

            zum anderen ist es nicht möglich, mit DirectoryIndex das Indexlisting zu unterdrücken,
            viel Spaß: http://www.meta-text.net/etc/

            Das gilt nicht, das ist "tricky" und geht am Thema vorbei. Hier hast du ja nicht das Listing unterdrückt, sondern eine Einstellung vorgenommen, die gleich auf "forbidden" verweist (mit wget bin ich übrigens trotzdem rangekommen). Es geht aber nicht darum, den Zugriff auf diese Ressource ganz und gar zu verwehren, sondern es geht einzig und allein darum, eben kein Listing ausgeben zu lassen bzw. einzelne Dateitypen aus dem Listing zu entfernen.

            IndexIgnore ist die Methode der Wahl.
            Ja, wenn man nur bestimmte Dateien/Dateitypen unterdücken will, aber nicht man man directoryIndexing verhindern will.

            "directoryIndexing" ist ein sehr verschwommener Begriff. Und Jens will ja, falls vorhanden, Dateien wie index.html durchaus anzeigen lassen, also muß Ressourcenzugriff generell erlaubt sein. Außerdem soll wahrscheinlich irgendeine *.pdf, die im Verzeichnis liegt, auch per link aufgerufen werden können, also ist eine Einschränkung per
              Allow from ...
              Deny from ...
            (wie hier im Thread bereits vorgeschlagen) auch nicht sinnvoll. Es bleibt als einzige einigermaßen erfolgversprechende Methode wirklich nur IndexIgnore übrig, die ja im übrigen sehr wirkungsvoll eingesetzt werden kann.

            Grüße aus Berlin

            Christoph S.

            1. Hallo Christoph,

              zum anderen ist es nicht möglich, mit DirectoryIndex das Indexlisting zu unterdrücken,
              viel Spaß: http://www.meta-text.net/etc/

              Das gilt nicht, das ist "tricky" und geht am Thema vorbei.

              *lol* . Was ist daran triky?
              "Options -Indexes" funktioniert bei mir im .htaccess ebensowenig wie IndexIgnore, DirectoryIndex dagegen sehr wohl. (ganz und gar verblödet bin ich nicht um das um sonst vorzuschlagen)

              Hier hast du ja nicht das Listing unterdrückt, sondern eine Einstellung vorgenommen, die gleich auf "forbidden" verweist

              Und? Wo ist das Problem damit? Das ist eine der allereinfachsten Möglichkeiten ohne sich den Kopf über Dateitypen etc. zu zerbrechen (+ was ich in meinem vorigen Absatz schrieb)

              Es geht aber nicht darum, den Zugriff auf diese Ressource ganz und gar zu verwehren, sondern es geht einzig und allein darum, eben kein Listing ausgeben zu lassen bzw. einzelne Dateitypen aus dem Listing zu entfernen.

              Eben. Siehe oben.

              IndexIgnore ist die Methode der Wahl.
              Ja, wenn man nur bestimmte Dateien/Dateitypen unterdücken will, aber nicht man man directoryIndexing verhindern will.

              "directoryIndexing" ist ein sehr verschwommener Begriff. Und Jens will ja, falls vorhanden, Dateien wie index.html durchaus anzeigen lassen, also muß Ressourcenzugriff generell erlaubt sein. Außerdem soll wahrscheinlich irgendeine *.pdf, die im Verzeichnis liegt, auch per link aufgerufen werden können, also ist eine Einschränkung per
                Allow from ...
                Deny from ...
              (wie hier im Thread bereits vorgeschlagen) auch nicht sinnvoll.

              Das ist Unsinn, da hast du recht (hat aber nichts mit dem zu tun was ich vorschlug).

              »»Es bleibt als einzige einigermaßen erfolgversprechende Methode wirklich nur IndexIgnore übrig, die ja im übrigen sehr wirkungsvoll eingesetzt werden kann.

              Sorry, aber die Praxis spricht eine andere Sprache. Bzw. du kannst mir ja gerne erklären, warum das gut ist, wenn's nicht funktioniert. ;-)

              Grüße
              Thomas

              --
              Surftip: kennen Sie schon Pipolino's Clowntheater?
              http://www.clowntheater-pipolino.net/
      2. Hallo,

        DirectoryIndex index.shtml index.html index.htm index.cgi index.php /403.html
        (du musst in deinem document root natürlich dann auhc ein 403.html anlegen)

        wobei dann aber (bei statischer 403.html) kein Fehler-Statuscode an den Client geht.

        Und warum sollte das ein Problem sein?

        Grüße
        Thomas

        --
        Surftip: kennen Sie schon Pipolino's Clowntheater?
        http://www.clowntheater-pipolino.net/
        1. Hi,

          (du musst in deinem document root natürlich dann auhc ein 403.html anlegen)
          wobei dann aber (bei statischer 403.html) kein Fehler-Statuscode an den Client geht.
          Und warum sollte das ein Problem sein?

          Ich hab ja nicht gesagt, daß das ein Problem sein muß - es war nur als ergänzender Hinweis gedacht.

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Schreinerei Waechter
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. hallo,

    Ich würde gerne mit der .htaccess eine Einstellung vornehmen, die es vemeidet, dass die Index-Darstellung des Verzeichnisinhaltes automatisch vom Apache erstellt wird, wenn keine Datei index.html oder index.php vorhanden ist.

    Versuche es einfach mit IndexIgnore

    Anwendung: Ich will das Verzeichnis mit Grafiken und PDF-Dateien einer Webseite vor dem direkten Zugriff schützen, ohne überall eine leere index.html einzusetzen.

    Das geht mit
      IndexIgnore *.pdf *.jpg *.png

    Grüße aus Berlin

    Christoph S.

  3. Hi!

    Ich würde gerne mit der .htaccess eine Einstellung vornehmen, die es vemeidet, dass die Index-Darstellung des Verzeichnisinhaltes automatisch vom Apache erstellt wird, wenn keine Datei index.html oder index.php vorhanden ist.

    Problem: Wenn ich in die .htaccess einfach nur
    Options -Indexes
    eintrage, erhalte ich einen Server-Error (bei mir läuft PHP als CGI)

    Dass PHP als CGI-Version läuft, hat damit in erster Linie gar nichts zu tun - das Problem ist wo anders zu suchen ;-) Bei solchen Sachen ist ein Blick in das ErrorLog des Apache unabdinglich - was sagt dieses also bei einem solchen Request aus?
    Typischerweise lässt sich dies auf einen Konfigurationsfehler zurückführen, d.h. an höherer Stelle steht so etwas wie AllowOverride None. Für Options muss mindestens AllowOverride Options gesetzt sein.

    Grüße,
    Fabian St.

  4. Hallo Jens,

    Options -Indexes
    eintrage, erhalte ich einen Server-Error

    die Zeile ist eigentlich richtig - was sagt denn das error_log?

    (bei mir läuft PHP als CGI)

    was hat PHP damit zu tun?

    Grüße aus Nürnberg
    Tobias