网页出现403 Forbidden错误的原因及如何解决方法
从昨天开始到现在我的网站打开一直是出现 Forbidden You don”t have permission to access on this server 的错误,意思是你没有此次访问权限,让我丈二的和尚摸不着头脑,想想我也没有对我的网站进行折腾啊,这是什么鬼,于是各种方法尝试,找空间商,度娘上找答案,翻墙找解决方法,最终功夫不负有心人,将该问题拿下,特此整理一下分享给大家,希望对小伙伴有帮助。
综合我的理解,先来说说产生这种问题的原因
403 Forbidden 是 HTTP 协议中的一个状态码(Status Code)。可以简单的理解为没有权限访问此站点。
403 forbidden 是什么意思?
403 Forbidden 是 HTTP 协议中的一个状态码(Status Code)。可以简单的理解为没有权限访问此站。该状态表示服务器理解了本次请求但是拒绝执行该任务,该请求不该重发给服务器。在 HTTP 请求的方法不是“HEAD”,并且服务器想让客户端知道为什么没有权限的情况下,服务器应该在返回的信息中描述拒绝的理由。在服务器不想提供任何反馈信息的情况下,服务器可以用 404 Not Found 代替 403 Forbidden。
403 错误代码的分类介绍
403.1 错误是由于”执行”访问被禁止而造成的,若试图从目录中执行 CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序时便会出现此种错误。
403.2 错误是由于”读取”访问被禁止而造成的。导致此错误是由于没有可用的默认网页并且没有对目录启用目录浏览,或者要显示的 HTML 网页所驻留的目录仅标记为”可执行”或”脚本”权限。
403.3 错误是由于”写入”访问被禁止而造成的,当试图将文件上载到目录或在目录中修改文件,但该目录不允许”写”访问时就会出现此种错误。
403.4 错误是由于要求 SSL 而造成的,您必须在要查看的网页的地址中使用”https”。
403.5 错误是由于要求使用 128 位加密算法的 Web 浏览器而造成的,如果您的浏览器不支持 128 位加密算法就会出现这个错误,您可以连接微软网站进行浏览器升级。
403.6 错误是由于 IP 地址被拒绝而造成的。如果服务器中有不能访问该站点的 IP 地址列表,并且您使用的 IP 地址在该列表中时您就会返回这条错误信息。
403.7 错误是因为要求客户证书,当需要访问的资源要求浏览器拥有服务器能够识别的安全套接字层(SSL)客户证书时会返回此种错误。
403.8 错误是由于禁止站点访问而造成的,若服务器中有不能访问该站点的 DNS 名称列表,而您使用的 DNS 名称在列表中时就会返回此种信息。请注意区别 403.6 与 403.8 错误。
403.9 错误是由于连接的用户过多而造成的,由于 Web 服务器很忙,因通讯量过多而无法处理请求时便会返回这条错误。
403.10 错误是由于无效配置而导致的错误,当您试图从目录中执行 CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序时便会返回这条错误。
403.11 错误是由于密码更改而导致无权查看页面。
403.12 错误是由于映射器拒绝访问而造成的。若要查看的网页要求使用有效的客户证书,而您的客户证书映射没有权限访问该 Web 站点时就会返回映射器拒绝访问的错误。
403.13 错误是由于需要查看的网页要求使用有效的客户证书而使用的客户证书已经被吊销,或者无法确定证书是否已吊销造成的。
403.14 错误 Web 服务器被配置为不列出此目录的内容,拒绝目录列表。
403.15 错误是由于客户访问许可过多而造成的,当服务器超出其客户访问许可限制时会返回此条错误。
403.16 错误是由于客户证书不可信或者无效而造成的。
403.17 错误是由于客户证书已经到期或者尚未生效而造成的。
导致 403 错误的主要原因
1、IP 被列入黑名单;
2、在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了;
3、网站域名解析到了空间,但空间未绑定此域名;
4、网页脚本文件在当前目录下没有执行权限;
5、在不允许写/创建文件的目录中执行了创建/写文件操作;
6、服务器繁忙,同一 IP 地址发送请求过多,遭到服务器智能屏蔽。
就路由器的访问而言,建议:
1、清理 internet 临时文件,清除 cookies 记录;
2、重启路由器即可。
解决 403 forbidden 错误的方法
重建 dns 缓存
对于一些常规的 403 forbidden 错误,马海祥建议大家首先要尝试的就是重建 dns 缓存,在运行中输入 cmd,然后输入 ipconfig/flushdns 即可。如果不行的话,就需要在 hosts 文件里把主页解析一下了。
同时,查看是否在网站虚拟目录中添加默认文档,一般默认文档为:index.html;index.asp;index.php;index.jsp;default.htm;default.asp 等
修改文件夹安全属性
用以下命令修改文件夹安全属性
chcon -R -t httpd_user_content_t public_html/
所用命令解析:
ls -Z -d public_html/ #显示文件/目录的安全语境-Z, --context Display security context so it fits on most displays. Displays only mode, user, group, security context and file name.-d, --directory list directory entries instead of contents, and do not dereference symbolic links chcon -R -t httpd_user_content_t public_html/ #修改文件/目录的安全语境-R, --recursive change files and directories recursively-t, --type set type TYPE in the target security context
apache 导致的 403 forbidden 错误的解决办法
打开 apache 的配置文件 httpd.conf,找到这段代码:
Options FollowSymLinks AllowOverride None Order deny,allow Deny from all
有时候由于配置了 php 后,这里的“Deny from all”已经拒绝了一切连接。把该行改成“allow from all”,修改后的代码如下,问题解决。
Options FollowSymLinks AllowOverride None Order deny,allow Allow from all
之所以会出现错误,是因为大多数的国外主机在配置 Apache 的时候启用了 mod_security,也就是开启了安全检查,如果提交的信息中包含 select,%,bin 等关键字,Apache 就会禁止,并给出 403,404,500 等错误。
HawkHost 空间出现 403 Forbidden 错误的解决方法
有的时候在共享服务器上安装了 Mod security,当网址包含有“%”号等其它敏感字符时,就会被 Mod security 阻止,马海祥博客曾经也出现过此情况。
解决 HawkHost 403 Forbidden 错误的方法:
在.htaccess 文件里添加如下代码:
SecFilterEngine Off SecFilterScanPOST Off
直接放在网站的根目录或者程序运行的目录下。
WordPress 导致的 403 Forbidden 错误解决方法
对于一些使用 WordPress 管理程序搭建的博客来说,就需要修改.htaccess 文件,在后面添加上如下内容即可,其实就是 disable mod_security
SecFilterEngine Off SecFilterScanPOST Off
另外 dedecms 的可能还需要再加一条,以让默认访问的是 index.html 文件的 DirectoryIndex index.html。
修改.htaccess 文件,将文件上传之后,再重新打开之前出现 403 Forbidden 的 URL 就没有再出现错误,直接可以 打开了。
还有一种解决办法,就是在上面的方法都不管用的时候,直接修改浏览器配置项:
1、首先需要打开浏览器,点“工具”→“管理加载项”那里禁用所有可疑插件,然后→工具→INTERNET 选项→常规页面→删除 cookies→删除文件→钩选删除所有脱机内容→确定→设置使用的磁盘空间为:8MB 或以下→确定→清除历史纪录→网页保存在历史记录中的天数:3 以下→应用确定
2、还原浏览器高级设置默认值:工具→INTERNET 选项→高级→还原默认设置。
3、恢复默认浏览器的方法“工具”→Internet 选项→程序→最下面有个“检查 Internet Explorer 是否为默认的浏览器”把前面的钩选上,确定。
4、设置主页:“工具”→Internet 选项→常规→可以更改主页地址→键入你喜欢的常用网址→应用。
5、插件免疫:全部钩选→免疫。然后→全部去掉钩选→找到“必备”一项,把能用到的插件重新钩选→取消免疫。能用到的就是 FLASH 和几种播放器的,其余的不要取消免疫。
做完以上步骤后即可解决问题啦!
码云笔记 » 网页出现403 Forbidden错误的原因及如何解决方法