防止从文件夹自动加载 index.html

Posted

技术标签:

【中文标题】防止从文件夹自动加载 index.html【英文标题】:Prevent auto loading index.html from a folder 【发布时间】:2019-02-19 21:08:25 【问题描述】:

在我的/subwebpage/ 文件夹中,我确实包含一个index.html 文件。

当我像这样访问我的网站时:www.website.com/subwebpage index.html 文件正在自动加载。连网址都不显示www.website.com/subwebpage/index.html

我想阻止index.html 文件的自动加载。这意味着,index.html 应该只加载,如果客户端是 URL:www.website.com/subwebpage/index.html

我在.htaccess 中添加了什么来执行此操作?

我试过了:

# Deny access to everything by default
Order Deny,Allow
deny from all

但这并没有帮助。

【问题讨论】:

在这篇文章中是一个可能的解决方案:https://***.com/questions/19322345/how-do-i-change-the-default-index-page-in-apache @AlejandroGranados 这个链接并没有真正回答我的问题。 @EmbaBakar 这个问题应该是你的解决方案。如果您将默认页面更改为其他内容,例如 loadme.html,它不会加载 index.html,除非您将它放在 URL 中。 How do I change the default index page in Apache?的可能重复 【参考方案1】:

您需要更改 .htaccess 中的 DirectoryIndex 属性

此属性告诉服务器哪个 filename.filetype 组合用作在没有提供时显示的默认文件。它还可以接受由空格分隔的多个值以用于后备目的,即如果未找到第一个值,则检查第二个值等。

默认属性是:

DirectoryIndex index.html

为了防止你的服务器默认显示 index.html,只需将 DirectoryIndex 属性的 index.html 值更改为不存在的值,例如:

DirectoryIndex filethatdoesnotexist.html



作为我提到的参考,这个属性可以有多个由空格分隔的值,如下所示:

DirectoryIndex index.html default.html first.html

这意味着如果服务器没有找到 index.html,它会寻找 default.html,如果没有找到,它会寻找 first.html 等。

【讨论】:

感谢您的回复。但实际上.htaccess 在文件夹public_html/secure 中。我想阻止加载index.html 的文件夹位于public_html/secure/app 上。在这种情况下,我必须在哪里添加这个DirectoryIndex?还有一个问题:是否必须在<IfModule mod_rewrite.c></IfModule> 之间 只需在 /public_html/secure/app 中创建另一个 .htaccess 文件 您可以拥有任意数量的 .htaccess 文件,嵌套文件夹中的每个文件都将优先于从父文件夹继承的文件。 而且你不需要把它放在里面,它可以是一个单行的.htaccess文件,上面的规则。 感谢您提供的信息。效果很好,非常感谢 Ivica Pesovski!

以上是关于防止从文件夹自动加载 index.html的主要内容,如果未能解决你的问题,请参考以下文章

防止自动加载上次打开的文档

防止 twitter 引导轮播在页面加载时自动滑动

final,类的自动加载,命名空间

为了防止页面重新自动加载,可以给a标签设置href="javascript:void;"

Rails 3.2 Nginx Unicorn 总是尝试从公共文件夹加载 index.html (403)

从 xib 文件加载的自动调整视图大小