2009-08-04 16 views
1

Ich möchte .htaccess verwenden, um die Verzeichnisliste zu verhindern.
Ich habe Seiten innerhalb /location/, aber ich habe keine Indexdatei. Ich möchte zum Beispiel auf /location/about.php umleiten.Verzeichnisverzeichnis durch Weiterleiten verhindern?

Gibt es eine Möglichkeit, dies zu tun, ohne eine index.html zu erstellen und Anforderungen an diese umleiten?

Danke für die Hilfe!

Antwort

9

Wenn Sie sich für eine Datei anstelle von ‚index.html‘ zu fragen, finden Sie unter „DirectoryIndex“ es zu sagen, welche Dateien anstelle von ‚index.html‘ verwenden:

DirectoryIndex about.php index.html 
Options –Indexes 

... wenn Sie alle Verzeichnisse auf einer einzigen Seite zu umleiten sind versucht, dann würde ich betrügen und die folgende tun, das wird meistens tun, was Sie fragen nach:

Options +Indexes 
IndexOptions +SuppressHTMLPreamble 
IndexIgnore * 
HeaderName /includes/header.html 
ReadmeName /includes/readme.html 

... und Set /includes/header.html mit der gewünschten Nachricht (oder mit einer Meta-Weiterleitung), a nd /includes/readme.html leer sein.

+0

Ich habe das erste Beispiel verwendet. Das Einschließen von Options -Indexes führte jedoch zu einem internen Serverfehler. Also habe ich DirectoryIndex verwendet, um die Standard-HTML-Datei zu ersetzen, und diese dann in jedem benötigten Verzeichnis wiedergespiegelt. Vielen Dank! –

0

Hier ist ein Link zu dem, was Sie brauchen:

http://www.webweaver.nu/html-tips/web-redirection.shtml

Wenn Sie etwas weiter fortgeschritten benötigen Parameter zu handhaben oder alten URLs zu neuen neu zuordnen müssen, können Sie URL-Rewriting verwenden können:

http://corz.org/serv/tricks/htaccess2.php

Verzeichnisliste Prevent (oder eine leere Verzeichnisliste zurück):

http://www.besthostratings.com/articles/prevent-directory-listing.html

+0

Ich möchte keine Seite umleiten, ich möchte ein Verzeichnis auf eine Seite umleiten. Wenn ich jedoch ein ganzes Verzeichnis umleite, zeigt jede Seite in diesem Verzeichnis auf die umgeleitete Seite. So soll es mir gehen. –

0

Das Ändern von DirectoryIndex und Options funktioniert, aber das Verwenden von mod_alias bedeutet, dass Sie es nicht erneut in verschachtelten Verzeichnissen ändern müssen.

Redirect 303 /location/ /location/about.php 
5

Ich weiß, das ist ein älterer Thread, aber ich hatte nur etwas zu implementieren ähnlich und hat es die folgende Art und Weise:

Options -Indexes 
ErrorDocument 403 /location/about.php 

Grundsätzlich Options -Indexes verhindert Verzeichnisliste und ErrorDocument 403 umschreibt die Standard-403-Nachricht.

+0

Beachten Sie, dass dies unbeabsichtigte Nebenwirkungen verursachen kann - 403 Antworten werden von vielen (meist?) Suchmaschinen nicht indiziert – Joe

+0

Und 403 ist "Zugriff verboten" - wollten Sie vielleicht 404? – ivanivan