【发布时间】:2017-10-06 16:26:51
【问题描述】:
我想防止在我的所有文件夹中列出目录文件,因此当用户键入http://example.com/thisDoesNotExists/ 时,目录文件列表不会显示。
根据教程,我所要做的就是设置IndexIgnore *
我尝试将它设置在httpd.conf,所以我这样做了
<IfModule mod_autoindex>
IndexIgnore *
</IfModule>
在httpd.conf的底部。
它不起作用。我得到了我的404errorPage.html,没有任何样式。
我该如何解决这个问题?谢谢。
免责声明:我尝试在httpd.conf 而不是htaccess 中设置它,因为“如果您有权访问 httpd 主服务器配置文件,则应完全避免使用 .htaccess 文件。使用 .htaccess 文件会降低您的 Apache http 服务器的速度. 任何可以包含在 .htaccess 文件中的指令都最好设置在 Directory 块中,因为它具有相同的效果和更好的性能。根据this.
【问题讨论】:
-
那么
http://example.com/thisDoesNotExists/是否存在?目前还不清楚你到底想做什么。如果你想像你说的那样prevent directory file listing in all of my folders,你应该在<Directory>指令中使用Options -Indexes。 -
@arco444 不,
http://example.com/thisDoesNotExists/不存在。这是我尝试做的。当您没有在 Apache 中设置IndexIgnore并且您转到一些不存在的 URL 时,例如example.com/asdrvd您可以在浏览器中看到服务器的目录和文件。通过设置IndexIgnore,浏览器不会显示任何目录或文件,而是我在ErrorDocument 404 "/404errorPage.html"中设置的页面。但它显示它没有样式(没有 CSS)。 -
@arco444 因此,要么我必须更改
IndexIgnore中的设置以显示带有样式(CSS)的404errorPage.html,要么这无法完成,所以我必须设置 @987654341 @ 显示无样式的消息。 -
我认为您可能在某处有一些奇怪的配置。如果您转到一个不存在的 URL,如果它们不存在,您如何返回文件列表?这正是应该返回 404 错误的情况。您是否检查过 404 页面中的链接样式表是否可以访问?例如,它是否使用相对路径?这听起来更有可能是问题所在。
IndexIgnore用于防止某些文件出现在目录列表页面中,不允许显示错误页面。
标签: apache module directive mod-autoindex