通过重定向来防止目录列表?

时间:2009-08-04 18:29:04

标签: apache .htaccess

我想使用.htaccess来阻止目录列表 我在 / location / 中有页面,但我没有索引文件。所以我想重定向到 /location/about.php

有没有办法做到这一点,而不创建 index.html 并将请求重定向到那个?

感谢您的帮助!

4 个答案:

答案 0 :(得分:9)

如果您要求代替'index.html'的文件,请参阅“DirectoryIndex”告诉它使用哪些文件代替'index.html':

DirectoryIndex about.php index.html
Options –Indexes

...如果您尝试将所有目录重定向到单个页面,那么我会欺骗并执行以下操作,这将主要执行您要求的操作:

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

...并使用您想要的任何消息(或包含元重定向)设置/includes/header.html,并将/includes/readme.html设为空白。

答案 1 :(得分:6)

我知道这是一个较老的线程,但我只需要实现类似的东西并按以下方式执行:

Options -Indexes
ErrorDocument 403 /location/about.php 

基本上,Options -Indexes会阻止目录列表,ErrorDocument 403会重写默​​认的403消息。

答案 2 :(得分:0)

以下是您需要的直接链接:

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

如果您需要更高级的东西来处理参数或需要将旧网址重新映射到新网址,您可以使用网址重写:

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

阻止目录列表(或返回空目录列表):

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

答案 3 :(得分:0)

更改DirectoryIndexOptions有效,但使用mod_alias意味着您无需在嵌套目录中将其更改回来。

Redirect 303 /location/ /location/about.php