IndexIgnore *或Options -Indexes

我一直使用Options -Indexes来通过.htaccess禁用目录列表。 但是,我看到人们使用IndexIgnore * 。 有什么不同? 哪一个比另一个好?

IndexIgnore指令是一种模式,如果目录Indexes 打开的文件与自动索引匹配,则自动索引中不会显示文件。

举个例子,我们有一个目录foo ,在这个目录下面有一个.htaccess文件和3个文件abc

如果在htaccess文件中有Options -Indexes ,那么通过访问http://mysite.com/foo/ ,我会得到一个403 Forbidden响应,因为没有索引文件(index.html,index.php等等)并且通过-Indexes关闭自动索引。

如果在htaccess文件中有IndexIgnore b ,那么通过访问http://mysite.com/foo/ ,我将得到一个自动索引响应,列出文件acb文件将被忽略,因为它已被忽略。 如果我们在htaccess文件中有IndexIgnore * ,并且进入http://mysite.com/foo/ ,我们会得到一个空白的自动索引文件,因为所有的文件都被忽略了。

至于哪个更好,这取决于你想要什么。 他们从根本上做了两件不同的事情。 你想自动索引? 如果没有,请关闭Options -Indexes 。 如果是这样,请保持开启。 如果你不想让某些东西出现在自动索引中,那么使用IndexIgnore