防止从文件夹自动加载 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 文件,嵌套文件夹中的每个文件都将优先于从父文件夹继承的文件。
而且你不需要把它放在以上是关于防止从文件夹自动加载 index.html的主要内容,如果未能解决你的问题,请参考以下文章
为了防止页面重新自动加载,可以给a标签设置href="javascript:void;"