【问题标题】:Set IndexIgnore inside httpd.conf在 httpd.conf 中设置 IndexIgnore
【发布时间】: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,你应该在&lt;Directory&gt;指令中使用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


【解决方案1】:

你的&lt;IfModule&gt; 参数是错误的,所以封闭的指令永远不会被评估。参数要么需要是模块名称(你可以看到 这在相应的LoadModule) 或主source 文件名中。

“autoindex_module”和“mod_autoindex.c”都有效。

【讨论】:

  • LoadModuleLoadModule autoindex_module modules/mod_autoindex.so,我已取消注释。我还尝试了&lt;IfModule mod_autoindex.c&gt;&lt;IfModule autoindex_module&gt;,但没有任何改变。也许我没有得到我应该做什么。你能再解释一下吗?谢谢
【解决方案2】:

这是另一种方法:

你应该编辑/etc/httpd/conf/httpd.conf,找到代码块

<Directory "/var/www/html">
    Options Index FollowSymLinks
</Directory>

您应该删除那里的Index,然后通过

重新启动您的httpd服务
sudo service httpd restart

【讨论】:

    猜你喜欢
    • 2010-09-13
    • 2013-07-19
    • 1970-01-01
    • 2019-04-26
    • 2013-06-10
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多