无法访问 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/ 中的“错误”文件夹的主要内容,如果未能解决你的问题,请参考以下文章