Horst Nogajski: AutoIndexing nur für bestimmte Verzeichnisse mittels htaccess?

Hallo zusammen,

ich möchte auf meinem Webspace für einige Verzeichnisse das autoIndexing nutzen.
Für andere Verzeichnisse aber _unbedingt_ verbieten.

Kann man das, wenn man nur mittels htacces-Dateien Einstellungen steuern kann?

Mein Provider läßt mir grundsätzlich die Möglichkeit, für den ganzen Space ein AutoIndexing ein oder auszuschalten (über ein KonfigurationsInterface).

Ich hatte gehofft, einen htaccess-File im Root zu finden, der vom ProviderKonfigInterface generiert wird, um den entsprechenden Befehl von dort zu kopieren  ;)

  • aber leider machen die das irgendwie anders. Da gibts keinen htaccessFile auf den ich einen Zugriff hätte.

Was ich bisher so gefunden habe bringt mich nicht wirklich ans Ziel:

Man kann in der httpd.conf-Datei in allen Ebenen (Server + virtueller Host + Verzeichnis) Angaben dazu machen mittels 'Options +Indexes' oder ähnlich. (Das habe ich bei mir lokal mal probiert, und das greift auch)
In htaccess-Dateien habe ich es auch mal in Unterverzeichnissen probiert, da hat es aber nicht gefruchtet.

Hab' ich die falsche Syntax verwendet?

Options +Indexes

Andere Direktiven wie z.B.:

<IfModule mod_autoindex.c>
     FancyIndexing on
     Indexoptions IconHeight=16 Iconwidth=16 NameWidth=*
     ReadmeName README
     HeaderName HEADER
     IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
   </IfModule>

funktionieren auch in htaccess-Dateien.

Kann mir jemand verraten wie das 'richtig' geht?

Viele Grüße,
Horst

  1. Hallo nochmal,

    Man kann in der httpd.conf-Datei in allen Ebenen (Server + virtueller Host + Verzeichnis) Angaben dazu machen mittels 'Options +Indexes' oder ähnlich. (Das habe ich bei mir lokal mal probiert, und das greift auch)
    In htaccess-Dateien habe ich es auch mal in Unterverzeichnissen probiert, da hat es aber nicht gefruchtet.
    Hab' ich die falsche Syntax verwendet?

    JAHA, und zwar im Dateinamen der lokalen Datei.
    Die hatte ich nämlich .htacces (ohne 2. s) genannt.

    Ich Dummerchen!

    Mit dem 2. s gehts lokal jetzt mit 'Options +Indexes'.

    Auf dem öffentlichen Server bekomme ich aber leider die Fehlermeldung:
       Internal Server Error

    Uups. Dat is nich juut.

    Hat jemand eine Idee woran das liegen könnte?
    Und wie ich das in den Griff bekommen kann?

    Nochmal viele Grüße,
    Horst

  2. Hi Horst,

    Kann man das, wenn man nur mittels htacces-Dateien
    Einstellungen steuern kann?

    im Prinzip ja.

    • aber leider machen die das irgendwie anders.
      Da gibts keinen htaccessFile auf den ich einen
      Zugriff hätte.

    Wirkt die Änderung via Konfigurations-Interface sofort
    oder verzögert?
    (Vielleicht schreibt das Interface Deine VirtualHost-
    Definition um, die per "include" in die httpd.conf
    eingebunden wird, ab nächsten Server-Restart.)

    In htaccess-Dateien habe ich es auch mal in
    Unterverzeichnissen probiert, da hat es aber
    nicht gefruchtet.

    Sollte es eigentlich schon:
     http://httpd.apache.org/docs/mod/core.html#options

    Hab' ich die falsche Syntax verwendet?
       Options +Indexes

    m. E. nein.

    funktionieren auch in htaccess-Dateien.
    Kann mir jemand verraten wie das 'richtig' geht?

    Alle Direktiven, die innerhalb von .htaccess erlaubt
    sind, gehören zu einer von fünf Klassen:

    http://httpd.apache.org/docs/mod/core.html#allowoverride

    In der Apache-Konfiguration kann man einstellen, wel-
    che Klassen von Direktiven innerhalb von .htaccess-
    Dateien erlaubt sind:

    http://httpd.apache.org/docs/mod/directive-dict.html#Override

    Bei jeder Direktive steht unter "Override" dabei,
    zu welcher dieser Klassen sie gehört.
    Und "Options" gehört zur Klasse "Options", während
    die ganzen AutoIndex-Direktiven zur Klasse "Indexes"
    gehören.

    Also: Frage Deinen Provider, ob er Dir alle Klassen
    von Direktiven mit "AllowOverride All" zur Verfügung
    stellen will.

    1. Hallo Michael,

      Wirkt die Änderung via Konfigurations-Interface sofort
      oder verzögert?

      Ein wenig zeitverzögert, so ca 60-120 sec.

      In htaccess-Dateien habe ich es auch mal in
      Unterverzeichnissen probiert, da hat es aber
      nicht gefruchtet.

      Sollte es eigentlich schon:

      Ja, habs mittlerweile bemerkt.

      Ich Dummerchen hab hier lokal einen falschen Dateinamen benutzt.
      Aber auf dem öffentlichen Server gehts auch mit richtigem Dateinamen nicht. Da erzeuge ich nur einen 'Konfigurationskonflikt' oder 'internen Server Error'.
      Das bedeutet dann ja wohl, das ich zwar das Recht habe die Direktiven der Klasse 'Indexes' zu 'overriden', aber leider (noch) nicht die der Klasse 'Options'.

      Also: Frage Deinen Provider, ob er Dir alle Klassen
      von Direktiven mit "AllowOverride All" zur Verfügung
      stellen will.

      Genau das werde ich jetzt machen.

      Vielen Dank und viele Grüße,
      Horst

      1. Hi Horst,

        Aber auf dem öffentlichen Server gehts auch mit
        richtigem Dateinamen nicht. Da erzeuge ich nur
        einen 'Konfigurationskonflikt' oder 'internen
        Server Error'.

        letzteres halte ich für die naheliegende Reaktion.
        Denn wenn Du bestimmte Direktiven nicht verwenden
        darfst, dann ist das praktisch ein Konfigurations-
        fehler des Servers selbst (.htaccess "outsourced"
        ja einen Teil dieser Konfiguration) und muß im
        Error-Log des Servers protokolliert werden.

        In dieser Datei wirst Du auch die exakte Erklärung
        finden, was passiert ist. Und sag jetzt nicht, Du
        hättest keinen Zugriff auf Dein error_log ...

        Viele Grüße
        <img src="http://www.schroepl.net/projekte/gzip_cnc/gzip_cnc.gif" border=0 alt=""> Michael

        1. Hi Michael,

          In dieser Datei wirst Du auch die exakte Erklärung
          finden, was passiert ist. Und sag jetzt nicht, Du
          hättest keinen Zugriff auf Dein error_log ...

          Hm, was ich definitiv weiß, ist, das ich keinen Zugriff auf den PHP-ErrorLog habe. Da haben die gesagt das wäre nicht möglich, für virtuelle Hosts so was zu erstellen. Also erst beim eigenen Server wäre das möglich. Nach dem Apache-Access- und -ErrorLog zu fragen habe ich vergessen, bzw. ich dachte das wäre selbstverständlich.
          Tatsächlich finde ich jetzt aber nix, (ausser so nen blöden Eintrag der nur einen Interface-eigenen Log ausgibt. Ich dachte zuerst noch: Das ist ja schön gelöst, weil da steht ErrorMeldungen -die letzten 50 Einträge)

          Ja, und eine Antwort auf meine Frage, zumindest die Möglichkeit die Option Indexes auf htaccess-Ebene überschreiben zu dürfen haben sie erstmal ganz lappidar mit der Begründung abgebügelt, es geht nur ganz an oder ganz aus, alles andere sei 'zu gefährlich'
          Zitat: "Eins von beiden geht nur. Um das feiner einzustellen, müssten Sie einige Ebenen höher. Das darf bei uns kein Kunde, weil man da alle Accounts einstellen kann und auch einige Türen öffnet, wenn man nicht weiß, was man tut."
          Dabei finde ich es aber eher gefährlich, auf der ganzen Seite ein autoListing anzuhaben. Da könnte dann jemand z.B. auf irgendwelche PHP-Dateien klicken die sonst nur included werden, und von denen man sonst nicht mal wüßte, das Sie da sind. Und wenn die dann auch noch irgendwas ausgeben (Fehlermeldungen) dann ist das bestimmt nicht der Sicherheit zuträglich.

          Im Moment ist sogar deren Server down. Das ist ja echt Klasse. Ich habe aber auch ein richtiges Glück :(

          Viele Grüße,
          Horst

          PS: kannst Du mir ein bischen Argumentationshilfe geben?
          Was müßen die denn minimum einschalten, damit das möglich ist?
          Und kann dann wirklich aus deren Sicht was 'gefährlich' sein?

          1. Hi Horst,

            PS: kannst Du mir ein bischen Argumentationshilfe geben?

            so, wie der Sermon Deines Providers sich anhört, eher
            nein ... :-\

            Also nicht, daß meiner alles perfekt machen würde ...
            aber was an Berechtigungen auf HTTP-Ebene eingestellt
            ist, bewirkt zunächst mal etwas auf HTTP-Ebene.
            Man kann natürlich ein ohnehin löcheriges System (alle
            Kundenverzeichnisse world readable etc.) durch will-
            kürliches Freischalten von Features (symbolic links
            ohne Einschränkung auf gleiche Benutzerkennung etc.)
            noch weiter unterminieren (wenn in Deinem Webspace ein
            symbolic link auf das "/" des Dateisystems zeigt, dann
            ist Tag der offenen Tür für sämtliche Scripte ... falls
            "/" world readable ist). Auf dem Server, der meine
            Domain hostet, ist sowohl "/" unlesbar für Normalsterb-
            liche aus auch die Verwendung von symbolic links nur
            innerhalb meines Datei-owner-Universums erlaubt - so
            weit wissen sie halt, was sie tun.

            Der Punkt ist halt, daß kundenspezifische Konfiguration
            sowohl Arbeit für den Provider bedeutet (es sei denn,
            Du diktierst ihm die Direktiven und baust ihm ein Demo-
            Verzeichnis, in dem _er_ den Effekt ausprobieren kann
            ... habe ich bei meinem mal gemacht, um MultiViews zu
            bekommen) als auch seine intellektuelle Kapazität for-
            dert - er wird sich zumindest unwohl fühlen, wenn er
            Dir etwas freischalten soll, was er selbst nicht kennt,
            aber auch nicht zugeben möchte ... ;-)

            Viele Grüße
            <img src="http://www.schroepl.net/projekte/gzip_cnc/gzip_cnc.gif" border=0 alt=""> Michael

            1. Hallo Michael,

              so, wie der Sermon Deines Providers sich anhört, eher
              nein ... :-\

              Prust, kicher.
              Aber da hast Du wohl sehr wahrscheinlich recht.

              _____

              Da werde ich am besten mal einen Tag abwarten, an dem ich wirklich gut drauf bin und genügend Zeit habe.
              Dann werde ich eine hübsche Mail verfassen in dem ich genau auseinanderlege wo die Vorzüge usw. liegen, und das ganze dann mit entsprechenden Verweisen und Zitaten untermauern.
              In der Hoffnung, das a) die sich das dann überhaupt anschauen, und b) Sie's dann einsehen das es besser ist, wenn Sie das freischalten :)

              Viele Grüße,
              Horst