.htaccess htaccess-如何仅允许访问其重定向/directoryindex中的子文件夹?
有点让人困惑 我在GoDaddy的网站结构如下:.htaccess htaccess-如何仅允许访问其重定向/directoryindex中的子文件夹?,.htaccess,.htaccess,有点让人困惑 我在GoDaddy的网站结构如下: /public_html /folder1/ /index.html /folder2/ /index.html /restrictedfolder /secretfolder 我在“public_html”根目录中创建了一个.htaccess文件,其中包含以下内容: DirectoryIndex /folder1/index.html http://example.com 如果我去mysite.com,它会引导我进入fo
/public_html
/folder1/
/index.html
/folder2/
/index.html
/restrictedfolder
/secretfolder
我在“public_html”根目录中创建了一个.htaccess文件,其中包含以下内容:
DirectoryIndex /folder1/index.html http://example.com
如果我去mysite.com,它会引导我进入folder1并正确显示我的主页。我的URL(指向用户)仍然是mysite.com,这就是我想要的。我遇到的问题是:
-如果我转到example.com/folder1(这仍然显示我的index.html)
-如果我转到example.com/restrictedfolder(这仍然显示我的index.html)
-如果我转到example.com/secretfolder(这仍然显示我的index.html)
不过,我确实希望example.com/folder2起作用 从这个
DirectoryIndex指令设置要查找的资源列表,
当客户端通过指定/
在目录名的末尾。本地url是的(%-编码)url
服务器上与请求目录相关的文档;它是
通常是目录中的文件名。可能需要几个URL
给定,在这种情况下,服务器将返回第一个
发现。如果不存在任何资源并且设置了Indexes选项,
服务器将生成自己的目录列表
简而言之,如果你把:
DirectoryIndex index.html
这意味着,无论何时,只要请求指向像这样的目录索引example.com/directory/
以及example.com
服务器都将查找index.html
文件,否则目录列表将出现,除非您通过其他选项阻止
在您的情况下,对您的网站的请求通常会转到/folder1/index.html
,但当请求转到目录服务器时,会再次收到该请求,因为您在目标路径前面添加了/
,所以无论何时对目录索引的请求都只针对/folder1/index.html
如果将其更改为DirectoryIndex folder1/index.html
,您会注意到,当请求转到目录索引时,即使有索引页,也会出现目录列表,因为服务器将查看该目录中的folder1/index.html
如果您只是尝试在index.html中具有不同内容的任何目录中添加相同的文件夹名folder1/index.html
,例如restrictedfolder
,那么当您请求example.com/restrictedfolder/
时,您将看到真正的路径/restrictedfolder/folder1/index.html
restrictedfolder/folder1/
中index.html的内容
要解决此问题,您可以使用mod_rewrite
将folder1
设置为网站根目录,而无需更改URI
此外不要这样放置主机名
DirectoryIndex/folder1/index.htmlhttp://example.com
此指令仅接受本地uri
如果要添加其他页面,也可以执行类似操作:
DirectoryIndex index.html index.php
因此,如果目录中没有index.html
,服务器将查找index.php
等等