1、重建dns缓存
对于一些常规的403 forbidden错误,马海祥建议大家首先要尝试的就是重建dns缓存,在运行中输入cmd,然后输入ipconfig /flushdns即可。如果不行的话,就需要在hosts文件里把主页解析一下了。
同时,查看是否在网站虚拟目录中添加默认文档,一般默认文档为:index.html;index.asp;index.PHP;index.jsp;default.htm;default.asp等,如下图所示:
403 Forbidden错误的原因和解决方法-马海祥博客
2、修改文件夹安全属性
用以下命令修改文件夹安全属性
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
3、关于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等错误。
4、关于HawkHost空间出现403 Forbidden错误的解决方法
有的时候在共享服务器上安装了Mod security,当网址包含有“%”号等其它敏感字符时,就会被Mod security阻止,马海祥博客曾经也出现过此情况。
解决HawkHost 403 Forbidden 错误的方法:
在.htaccess文件里添加如下代码:
SecFilterEngine Off
SecFilterScanPOST Off
直接放在网站的根目录或者程序运行的目录下。
5、关于WordPress导致的403 Forbidden错误解决方法
对于一些使用WordPress管理程序搭建的博客来说,就需要修改.htaccess文件,在后面添加上如下内容即可,其实就是disable mod_security
SecFilterEngine Off
SecFilterScanPOST Off
另外dedecms的可能还需要再加一条,以让默认访问的是index.html文件的DirectoryIndex index.html。
修改.htaccess文件,将文件上传之后,再重新打开之前出现403 Forbidden的URL就没有再出现错误,直接可以打开了。