我一直使用Options -Indexes
通过.htaccess禁用目录列表。但是,我看到有人使用IndexIgnore *
代替。有什么不同?哪个比另一个好?
答案 0 :(得分:35)
IndexIgnore
directive是一种模式,其中 打开 的目录中的文件不会显示在自动索引中如果他们匹配模式。
比如说,我们有一个目录Indexes
,在该目录中,我们有一个foo
文件和3个文件,.htaccess
,a
和b
。
如果在htaccess文件中有c
,那么转到Options -Indexes
,我会收到403 Forbidden响应,因为没有索引文件(index.html,index.php等)并通过http://mysite.com/foo/
关闭自动索引。
如果在htaccess文件中有-Indexes
,那么转到IndexIgnore b
,我会收到一个自动索引响应,列出文件http://mysite.com/foo/
和a
。 c
文件将丢失,因为它已被忽略。如果我们在htaccess文件中有b
而我们转到IndexIgnore *
,我们将获得一个空白的自动索引文件,因为所有文件都被忽略了。
至于哪个更好,这取决于你想要什么。他们从根本上做了两件事。你想要自动索引吗?如果没有,请将其关闭http://mysite.com/foo/
。如果是这样,请将其保留。如果您不希望某些内容显示在自动索引中,请使用Options -Indexes
。