Dies funktioniert sogar in einem <Directory> oder <Location> in einer tatsächlichen .conf-Datei
chrismarx
1
@chrismarx In welche .conf-Datei würde ich sie einfügen? .htaccess scheint auf meinem Server nicht aktiviert zu sein, und ich habe gelesen, dass es besser ist, es trotzdem nicht zu verwenden. Ich habe jedoch Zugriff auf alle Serverdateien, da es sich um ein vps handelt.
Charles John Thompson III
1
Ich bin bei derselben Frage festgefahren. Ich habe die .htaccess-Datei mit dem Code zum selben Verzeichnis wie meine Webseite hinzugefügt, aber es wird mir immer noch eine Warnung zum Durchsuchen des Verzeichnisses angezeigt. Mache ich etwas falsch?
Randy Gilman
10
Beachten Sie, dass dies .htaccessmöglicherweise deaktiviert ist. Bitte überprüfen Sie die AllowOverrideRichtlinie. Wenn es auf eingestellt ist None, .htaccessist es ausgeschaltet. Sie können es durch Einstellen einschalten AllowOverride All. Genauer gesagt Allbedeutet dies alle Apache-Richtlinien.
Julian
2
Wenn Sie die Kontrolle über die http.conf haben, tun Sie es besser dort. Es gibt einen Performance-Hit mit htaccess
Itay Moav-Malimovka
298
Der beste Weg, dies zu tun, ist es mit dem Webserver Apache2 zu deaktivieren. In meinem Ubuntu 14.X - offene /etc/apache2/apache2.confÄnderung von
@ Jay Ich habe auch "Options -indexes" ausprobiert, aber Apache hat kein Nachwort gestartet. Ich verwende die Serverversion: Apache / 2.4.18 (Ubuntu). Die Verwendung von "Options FollowSymLinks" funktionierte jedoch gemäß der Antwort von Dung. Ich bin nur neugierig, welche Version von Apache und Betriebssystem Sie ausführen? Vielleicht ist es eine Versionssache?
MikeyE
@ Jay @ MikeyE Gleich hier; Apache würde nicht mit-Indexes
Crimbo
1
@ Jay @ MikeyE Apache scheint neu zu laden / neu zu starten, wenn Sie entfernenFollowSymLinks
Crimbo
2
Das Ausführen apachectl configtestnach dem Hinzufügen Options -Indexes FollowSymLinkszu httpd.conf gibt den folgenden Fehler aus: "Entweder müssen alle Optionen mit + oder - beginnen, oder es kann keine Option geben." Daher wird es funktionierenOptions -Indexes +FollowSymLinks
John T.
45
Abgesehen von den beiden oben genannten Methoden (bearbeiten Sie /etc/apache2/apache2.conf oder fügen Sie Optionen -Indexe in die .htaccess-Datei ein), gibt es hier eine andere
-Indexe im Stammverzeichnis funktionieren nicht, in apache2.4.33 musste ich die Antwort von @Sarvar Nishonboyev verwenden
Felipe Valdes
1
@FelipeValdes Bitte lesen Sie sowohl die Frage als auch meine Antwort sorgfältig durch. Es handelt sich nicht um ein Stammverzeichnis, sondern um ein Unterverzeichnis, und es wurde angefordert, dass es in einer .htaccessDatei ausgeführt werden kann (was nicht die leistungsfähigste Methode ist, aber häufig die einzige Option in gemeinsam genutzten Hosting-Konten oder mit ausgelasteten Systemadministratoren).
Álvaro González
23
Sie können eine leere aufgerufene Datei index.htmlin jedes Verzeichnis einfügen, das nicht aufgelistet werden soll. Dies hat mehrere Vorteile:
Es erfordert (normalerweise) keine Konfiguration auf dem Server.
Es funktioniert auch dann weiter, wenn der Serveradministrator beschließt, "AllowOverride None" in der Serverkonfiguration zu verwenden. (Wenn du benutzt.htaccess Dateien verwenden, kann dies zu zahlreichen Meldungen "Fehler 500 - Interner Serverfehler" für Ihre Benutzer führen!).
Außerdem können Sie Ihre Dateien wieder von einem Server auf den nächsten verschieben, ohne sich mit der Apache-Konfiguration herumschlagen zu müssen.
Theoretisch könnte die automatische Indizierung durch eine andere Datei ausgelöst werden (dies wird durch die DirectoryIndexOption gesteuert ), aber ich habe dies in der realen Welt noch nicht erlebt .
Kopf hoch! Dies funktioniert möglicherweise nur mit index.htmlder primär definierten DirectoryIndex-Direktive .
Nyedidikeke
18
Eine wichtige Sache beim Einrichten eines sicheren Apache-Webservers ist das Deaktivieren des Verzeichnis-Browsings. Standardmäßig ist diese Funktion in Apache aktiviert. Es ist jedoch immer eine gute Idee, sie zu deaktivieren, es sei denn, Sie benötigen sie wirklich. Öffnen Sie die Datei httpd.conf im Apache-Ordner und suchen Sie die folgende Zeile:
Options Includes Indexes FollowSymLinks MultiViews
Entfernen Sie dann die Wortindizes und speichern Sie die Datei. Starten Sie Apache neu. Das ist es
Perfekt. Deaktivieren Sie es maschinenweit. Warum sollte dies standardmäßig aktiviert sein, ich habe keine Ahnung ...
eduncan911
1
Dies funktionierte für mich unter Ubuntu (apache2.conf), aber .htaccess Options -Indexes nicht.
Danniel Little
Dies funktionierte für mich unter Ubuntu (/etc/apache2/apache2.conf), aber .htaccess-Optionen -Indexe nicht.
user2875289
5
Wenn Sie Ihre httpd.conf-Datei ändern möchten, um dieses Problem zu lösen, und mehrere Options-Direktiven haben, müssen Sie vor jeder Direktive ein - oder ein + hinzufügen. Beispiel:
Auf meinem Ubuntu 12.04 apache2 habe Indexesich weder in apache2.conf noch in httpd.conf gefunden, zum Glück habe ich es in gefunden sites-available/default. Nach dem Entfernen wird keine Verzeichnisliste mehr angezeigt. Muss es vielleicht tun sites-available/default-ssl.
Öffnen Sie Ihre .htaccess-Datei und geben Sie den folgenden Code ein
Options -Indexes
Stellen Sie sicher, dass Sie die EINGABETASTE (oder die EINGABETASTE, wenn Sie einen Mac verwenden) drücken, nachdem Sie die Wörter "Optionen - Indizes" eingegeben haben, sodass die Datei mit einer leeren Zeile endet.
Um die Antwort von @ GauravKachhadiya zu vervollständigen:
IndexIgnore *.jpg
bedeutet "Nur JPG- Erweiterungsdateien vor der Indizierung verbergen" .
Die IndexIgnore-Direktive verwendet Platzhalterausdrücke, um sie mit Verzeichnissen und Dateien abzugleichen.
Als Sternzeichen entspricht es allen Zeichen in einer Zeichenfolge, z. B.: foo oder foo.extension. Im folgenden Beispiel wird die Verzeichnisliste deaktiviert. Im Index werden keine Dateien oder Verzeichnisse angezeigt:
IndexIgnore *
Oder wenn Sie räumliche Dateien in der Verzeichnisliste ausblenden möchten, können wir verwenden
IndexIgnore *.php
* .php => entspricht einer Zeichenfolge, die mit einem beliebigen Zeichen beginnt und mit .php endet
Im obigen Beispiel werden alle Dateien ausgeblendet, die mit .php enden
Antworten:
Erstellen Sie eine .htaccess-Datei mit der folgenden Zeile:
Das ist eine Option. Eine weitere Option ist das Bearbeiten Ihrer Apache-Konfigurationsdatei.
Dazu müssen Sie es zunächst mit dem folgenden Befehl öffnen:
Suchen Sie dann die Zeile: Options Indizes FollowSymLinks
Ändern Sie diese Zeile in: Optionen FollowSymLinks
Speichern und beenden Sie zuletzt die Datei und starten Sie den Apache-Server mit folgendem Befehl neu:
(Sie haben einen Leitfaden mit Screenshots hier .)
quelle
.htaccess
möglicherweise deaktiviert ist. Bitte überprüfen Sie dieAllowOverride
Richtlinie. Wenn es auf eingestellt istNone
,.htaccess
ist es ausgeschaltet. Sie können es durch Einstellen einschaltenAllowOverride All
. Genauer gesagtAll
bedeutet dies alle Apache-Richtlinien.Der beste Weg, dies zu tun, ist es mit dem Webserver Apache2 zu deaktivieren. In meinem Ubuntu 14.X - offene
/etc/apache2/apache2.conf
Änderung vonzu
Starten Sie dann Apache neu durch:
Dadurch wird die Verzeichnisliste für alle Ordner deaktiviert, die Apache2 bedient.
quelle
-Indexes
FollowSymLinks
apachectl configtest
nach dem HinzufügenOptions -Indexes FollowSymLinks
zu httpd.conf gibt den folgenden Fehler aus: "Entweder müssen alle Optionen mit + oder - beginnen, oder es kann keine Option geben." Daher wird es funktionierenOptions -Indexes +FollowSymLinks
Abgesehen von den beiden oben genannten Methoden (bearbeiten Sie /etc/apache2/apache2.conf oder fügen Sie Optionen -Indexe in die .htaccess-Datei ein), gibt es hier eine andere
Starten Sie anschließend den Apache2-Server neu
quelle
a2dismod -f autoindex
für die nicht blockierende Befehlsausführung verwenden.Alias
Ordner und jeden anderen von Apache bereitgestellten Pfad.Bearbeiten / Erstellen Sie eine
.htaccess
Datei/galerias
mit diesem:Das Durchsuchen von Verzeichnissen wird vom Modul mod_autoindex bereitgestellt .
quelle
.htaccess
Datei ausgeführt werden kann (was nicht die leistungsfähigste Methode ist, aber häufig die einzige Option in gemeinsam genutzten Hosting-Konten oder mit ausgelasteten Systemadministratoren).Sie können eine leere aufgerufene Datei
index.html
in jedes Verzeichnis einfügen, das nicht aufgelistet werden soll. Dies hat mehrere Vorteile:.htaccess
Dateien verwenden, kann dies zu zahlreichen Meldungen "Fehler 500 - Interner Serverfehler" für Ihre Benutzer führen!).Theoretisch könnte die automatische Indizierung durch eine andere Datei ausgelöst werden (dies wird durch die
DirectoryIndex
Option gesteuert ), aber ich habe dies in der realen Welt noch nicht erlebt .quelle
index.html
der primär definierten DirectoryIndex-Direktive .Eine wichtige Sache beim Einrichten eines sicheren Apache-Webservers ist das Deaktivieren des Verzeichnis-Browsings. Standardmäßig ist diese Funktion in Apache aktiviert. Es ist jedoch immer eine gute Idee, sie zu deaktivieren, es sei denn, Sie benötigen sie wirklich. Öffnen Sie die Datei httpd.conf im Apache-Ordner und suchen Sie die folgende Zeile:
Entfernen Sie dann die Wortindizes und speichern Sie die Datei. Starten Sie Apache neu. Das ist es
quelle
Wenn Sie Ihre httpd.conf-Datei ändern möchten, um dieses Problem zu lösen, und mehrere Options-Direktiven haben, müssen Sie vor jeder Direktive ein - oder ein + hinzufügen. Beispiel:
Optionen -Indexe + FollowSymLinks
quelle
Dies ist keine Antwort, nur meine Erfahrung:
Auf meinem Ubuntu 12.04 apache2 habe
Indexes
ich weder in apache2.conf noch in httpd.conf gefunden, zum Glück habe ich es in gefundensites-available/default
. Nach dem Entfernen wird keine Verzeichnisliste mehr angezeigt. Muss es vielleicht tunsites-available/default-ssl
.quelle
Öffnen Sie Ihre .htaccess-Datei und geben Sie den folgenden Code ein
Stellen Sie sicher, dass Sie die EINGABETASTE (oder die EINGABETASTE, wenn Sie einen Mac verwenden) drücken, nachdem Sie die Wörter "Optionen - Indizes" eingegeben haben, sodass die Datei mit einer leeren Zeile endet.
quelle
Fügen Sie dies in Ihre .htaccess-Datei ein:
Wenn es aus irgendeinem Grund nicht funktioniert, versuchen Sie dies in Ihrer .htaccess-Datei:
quelle
Um die Antwort von @ GauravKachhadiya zu vervollständigen:
bedeutet "Nur JPG- Erweiterungsdateien vor der Indizierung verbergen" .
Die IndexIgnore-Direktive verwendet Platzhalterausdrücke, um sie mit Verzeichnissen und Dateien abzugleichen.
Als Sternzeichen entspricht es allen Zeichen in einer Zeichenfolge, z. B.: foo oder foo.extension. Im folgenden Beispiel wird die Verzeichnisliste deaktiviert. Im Index werden keine Dateien oder Verzeichnisse angezeigt:
IndexIgnore *
Oder wenn Sie räumliche Dateien in der Verzeichnisliste ausblenden möchten, können wir verwenden
* .php => entspricht einer Zeichenfolge, die mit einem beliebigen Zeichen beginnt und mit .php endet
Im obigen Beispiel werden alle Dateien ausgeblendet, die mit .php enden
quelle
Versuchen Sie dies in
.htaccess
:quelle