无法访问 subdomain.localhost/error/ 中的“错误”文件夹

Posted

技术标签:

【中文标题】无法访问 subdomain.localhost/error/ 中的“错误”文件夹【英文标题】:Cant Access a "error" folder in subdomain.localhost/error/ 【发布时间】:2015-09-12 00:31:33 【问题描述】:

我正在尝试将所有错误文档放入网站根目录中的一个文件夹中。

理想情况下,我希望我的所有错误文档都进入 http://subdomain.localhost/error/,但每当我在浏览器中加载 URL 时,我都会收到一条消息 Access forbidden! Error 403

然后我从文档根目录中删除了.htaccess 文件。 .htaccess文件的内容是:

ErrorDocument 403 /err_docs/401
ErrorDocument 401 /err_docs/401
ErrorDocument 404 /err_docs/404
ErrorDocument 500 /err_docs/500

IndexIgnore * # prevent directory listing

Order deny,allow
Allow from *

/err_docs/ 是我当前存放错误文档的文件夹 - (因为 /error 不起作用)。

检查 apache 错误日志后,我发现: [Thu Jun 25 13:46:57.445385 2015] [autoindex:error] [pid 5104:tid 1760] [client 127.0.0.1:51853] AH01276: Cannot serve directory C:/xampp/apache/error/: No matching DirectoryIndex (index.php,index.pl,index.cgi,index.asp,index.shtml,index.html,index.htm,default.php,default.pl,default.cgi,default.asp,default.shtml,default.html,default.htm,home.php,home.pl,home.cgi,home.asp,home.shtml,home.html,home.htm) found, and server-generated directory index forbidden by Options directive

我尝试了以下方法:

从文档根目录中删除了.htaccess。 (来自子域和域)。 检查 apache 的文件夹中没有其他 .htaccess 文件

我很高兴在谷歌上找到结果,但我不知道要搜索什么。任何人都可以告诉我从哪里开始寻找问题,或者寻找什么?

更新 这是我的虚拟主机配置文件的内容:

NameVirtualHost localhost:80
<VirtualHost *:80>
<Directory "C:\web">
    Options Indexes FollowSymLinks MultiViews Includes ExecCGI
    AllowOverride All
    Order Allow,Deny
    Allow from all
    Require all granted
</Directory>
ServerName localhost
ServerAlias localhost
DocumentRoot "C:\web"
</VirtualHost>

#######################################

NameVirtualHost localhost:80
<VirtualHost *:80>
<Directory 'C:\\Personal\\Web'>
    Options Indexes FollowSymLinks MultiViews Includes ExecCGI
    AllowOverride All
    Order Allow,Deny
    Allow from all
    Require all granted
</Directory>
ServerName personal.localhost
ServerAlias personal.localhost
DocumentRoot 'C:\\Personal\\Web'
</VirtualHost>

#######################################

【问题讨论】:

使用名为error 的文件夹对我来说可以很好地处理上面的.htaccess 文件。 401、404、500等文件夹中是否真的放了相应的错误文档? @Cyclone 我认为问题不在于.htaccess 文件,因为如果我从目录中删除该文件,我仍然无法访问该文件夹。我确定问题出在其他地方,但我不确定在哪里,但我加入这个社区的时间已经够长了,我知道有人会要求查看 .htaccess 文件。 您对提供错误文档的文件夹设置了哪些权限? @Cyclone 完全权限,我没有拒绝任何其他权限,因为我在我的站点代码文件中进行了所有验证(以防止不必要的访问)。我也是这台机器的管理员,我没有启用 UAC(Windows 7 和 XAMPP) 尝试重新启动您的服务器,可能它还没有获取到您的.htaccess 文件的更新。 【参考方案1】:

我今天遇到了完全相同的问题。在谷歌搜索时,我遇到了这个问题。由于这个问题没有得到解答,并且没有一个 cmets 帮助我,我问了一个新的 question,我观察到 /error 是从 ServerRoot 而不是 DocumentRoot 提供的。在 cmets 中,我建议检查 /error 的别名。最后我在文件 xampp/apache/conf/extra/httpd-multilang-errordoc.conf 中得到了别名。注释 Alias 指令使文档根目录中的 error 文件夹可访问。请注意,注释别名可能会产生副作用,因为 /error 文件夹文件在其他配置文件中有很多用途,主要用于定义 ErrorDocument

【讨论】:

以上是关于无法访问 subdomain.localhost/error/ 中的“错误”文件夹的主要内容,如果未能解决你的问题,请参考以下文章

apache 别人无法访问

如何解决win10无法访问\\

javaweb网页无法访问怎么解决

为何无法访问网站?

Linux系统下的80端口公网无法访问。

C盘 位置不可用,无法访问C:\ 拒绝访问