2009-09-05 2 views
19

Kann ich die Ordner in meinem Stammordner ausblenden? Nur für den Fall, dass meine index.php verschwinden würde, weißt du?Ordner mit .htaccess ausblenden

Könnte ich auch zeigen 404 Fehler nicht gefunden, wenn jemand sie anfordert?

Antwort

20
IndexIgnore * 

Das obige würde verhindern, dass alle Dateien aufgelistet werden. Hier fungiert * als ein Platzhalter. Sie könnten es bei Bedarf durch etwas spezifischeres ersetzen.

+0

ersetzen '*' wie? Sagen wir, ich habe 3 Dateien und Ordner 1 Ich möchte, sich verstecken ('file1.jpg, some.pdf, else.html, i-am-a-folder') – Omar

+0

IndexIgnore keinen Zugriff auf bekannte Dateispeicherorte innerhalb des Ordners nicht zulassen dass es schützt. Ein htaccess mit: 'bestellen erlauben, verweigern' ' leugnen von allen' würde einen besseren Job machen. – GTodorov

33

Was Sie wollen, ist wahrscheinlich

Options -Indexes 

, die nur einen 404-Fehler geben wird, wenn kein Directory Datei gefunden wird.

+5

Ich denke es ist eher ein 403. – Gumbo

9

Wie duskwuff erwähnt, was Sie brauchen, ist

Options - Indexes 

Diese ein 403 verbotenen Fehler auf diesem bestimmten Verzeichnis verursacht. So eine benutzerdefinierte Fehlerseite, um Ihnen

ErrorDocument 403 myErrorPage.html 

Hoffnung brauchen diese

+0

Diese Antwort war 5 Stunden zu spät, sollte aber die akzeptierte Antwort sein.Dadurch wird ohne Indexdatei ein Fehler erzeugt, den Sie dann mit dem Standardserver umgehen können. Die akzeptierte Antwort wird einfach die Ordner auf der Seite der Verzeichnisansicht verbergen. Es erzeugt also einen falsch positiven .. Alten Beitrag aber in Top Google Ergebnisse. – Mayhem

0

Für mich hilft es funktioniert immer mit

<Directory "/var/www/yourfolder"> IndexIgnore * </Directory> 

auf die Datei/etc Hinzufügen/apache2/sites-available/Standard

1

Dies war meine bevorzugte Lösung für das gleiche Problem (dies zeigt einen Zugriff verweigert statt 404):

<files "/path/to/single/file/or/folder"> 
    order allow,deny 
    deny from all 
</files> 

Dies gibt Ihnen auch die Möglichkeit, den Zugriff auf bestimmte IP-Adressen zu geben (in diesem Fall Zugang zu leugnen ist, um all)

Die "/ path/to/single/file/oder/Ordner" kann ersetzt werden durch Regex, wenn Sie stattdessen ein Muster verwenden möchten. Andernfalls müssen Sie mehrere Blöcke für jede bestimmte Datei oder jeden Ordner verwenden, für den Sie den Zugriff sperren möchten.

1

Wenn Sie wirklich einen 404-Fehler für Unterordner (e) zeigen wollen, versuchen Sie Folgendes in /.htaccess:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [R=404,L] 

Wenn ein Seiendes /folder oder /subfolder angefordert wird, die obige Regel es /404 umschreiben wird.

0

Ich komme um dies durch Hinzufügen einer index.html für alle Ordner ich möchte nicht zugegriffen werden. Die Seite index.html enthält eine einzelne Zeile mit den folgenden header("Location:thepageiwanttoshown.html"). Auf diese Weise, wenn der Benutzer versehentlich die eingeschränkten Ordner besucht, werden sie im laufenden Betrieb umgeleitet. Ich hoffe es hilft