今天,我们将深入探讨解决网站常见错误403和404的方法。曾经,我们通常使用宝塔或者主机大师来搭建网站,但突然间,客户提到他正在使用站群,服务器是W 2008 server。最初一切正常,但后来却频繁出现各种报错。最常见的是0x80070002错误,之后却变成了0x00000000。解决这些错误的方法很简单,问题出在没有设置默认文件,通常情况下,PHP的默认文件是default.php,而ASP的默认文件是default.asp。如果ASP默认格式文档没有设置,就会出现这种错误。
另外,我们也需要了解403 Forbidden错误的原因以及解决方法。最近接手了一批新制作的网站,在访问时不时会遇到403 Forbidden错误。浏览器会提示403 Forbidden错误,打开Access Error中列出的URL后,会看到以下错误信息:
403 Forbidden
Access to this resource on the server is denied!
Powered By LiteSpeed Web Server
LiteSpeed Technologies is not responsible for administration and contents of this web site!
403错误是网站访问过程中常见的错误提示,意味着资源不可用。当客户端发送请求时,服务器理解了请求但拒绝处理它。这种情况通常是由于服务器上文件或目录的权限设置不正确所致,比如IIS或Apache设置了访问权限不当。一般会显示以下提示信息:
一、403 forbidden是什么意思?
403 Forbidden是HTTP协议中的一个状态码(Status Code)。简单来说,它表示没有权限访问该网站。服务器理解了请求,但拒绝执行该任务,因此不应该再次向服务器发送相同的请求。如果服务器希望客户端了解拒绝访问的原因,通常会在返回的信息中描述拒绝的理由。但如果服务器不希望提供任何反馈信息,也可以用404 Not Found代替403 Forbidden。
二、403错误代码的分类详解
403.1错误:
403.1错误通常是由于被禁止执行访问所致。当试图从目录中执行CGI、ISAPI或其他可执行程序时,但该目录不允许执行程序时,就会出现这种错误。
403.2错误:
403.2错误是由于被禁止读取访问所致。导致这种错误的原因可能是因为没有可用的默认网页,也没有启用目录浏览,或者HTML网页所在目录只标记为"可执行"或"脚本"权限。
403.3错误:
403.3错误是由于被禁止写入访问所致。当试图将文件上传到目录或修改目录中的文件时,但该目录不允许"写"访问时,就会出现这种错误。
403.4错误:
403.4错误要求使用SSL,必须在要查看的网页地址中使用"https"。
403.5错误:
403.5错误要求使用128位加密算法的Web浏览器。如果浏览器不支持128位加密算法,就会出现这个错误,可以连接到微软网站进行浏览器升级。
403.6错误:
403.6错误是由于IP地址被拒绝所致。如果服务器中有不能访问该站点的IP地址列表,并且您的IP地址在列表中,就会返回这个错误。
403.7错误:
403.7错误要求客户端具有服务器可识别的SSL客户端证书。
403.8错误:
403.8错误是由于禁止站点访问所致。如果服务器中有不能访问该站点的DNS名称列表,并且您使用的DNS名称在列表中,就会返回这个错误。
403.9错误:
403.9错误是由于连接的用户过多所致。当Web服务器忙碌,无法处理请求时,就会返回这个错误。
403.10错误:
403.10错误是由于无效配置所致。当试图从目录中执行CGI、ISAPI或其他可执行程序,但该目录不允许执行程序时,就会返回这个错误。
403.11错误:
403.11错误是由于密码更改而导致无权查看页面。
403.12错误:
403.12错误是由于映射器拒绝访问所致。如果要查看的网页需要有效的客户端证书,但您的客户端映射没有访问该Web站点的权限,就会返回这个错误。
403.13错误:
403.13错误是由于客户端证书已被吊销或无法确定客户端证书是否已吊销而造成的。
403.14错误:
403.14错误是由于Web服务器配置为不列出目录内容而造成的,拒绝目录列表。
403.15错误:
403.15错误是由于客户访问许可超过限制而造成的。当服务器超出其客户访问许可限制时,就会返回这个错误。
403.16错误:
403.16错误是由于不受信任或无效的客户端证书而造成的。
403.17错误:
403.17错误是由于客户端证书已过期或尚未生效而造成的。
三、引发403错误的主要原因
IP地址被列入黑名单。
在短时间内过多地访问该网站(通常是使用采集程序),导致被防火墙拒绝访问。
网站域名解析到了空间,但空间未绑定此域名。
网页脚本文件在当前目录下没有执行权限。
在不允许写/创建文件的目录中进行了创建/写文件操作。
使用HTTP方式访问需要SSL连接的网址。
浏览器不支持SSL 128位加密算法时访问SSL 128位的连接。
在身份验证过程中输入了错误的密码。
DNS解析错误,手动更改了DNS服务器地址。
连接的用户过多,建议稍后再试。
服务器负载过重,同一IP地址发送了过多的请求,导致服务器智能屏蔽。
四、解决403 Forbidden错误的方法
1、重建DNS缓存
首先,尝试重建DNS缓存,可以通过在运行中输入cmd,然后输入ipconfig /flushdns来实现。如果仍然存在问题,则需要检查是否在网站虚拟目录中添加了默认文档,通常默认文档包括:index.html、index.asp、index.php、index.jsp、default.htm、default.asp等。
2、修改文件夹安全属性
可以使用以下命令修改文件夹的安全属性:
解析所用命令如下:
显示文件或目录的安全上下文
修改文件或目录的安全上下文,其中:
-R, --recursive 表示递归修改文件和目录
-t, --type 设置目标安全上下文的类型
3、关于Apache导致的403 Forbidden错误的解决方法
打开Apache的配置文件httpd.conf,找到以下代码段:
有时候,由于配置了PHP后,其中的“Deny from all”可能会拒绝所有连接。将其修改为“Allow from all”,修改后的代码如下:
此错误通常是因为大多数国外主机在配置Apache时启用了mod_security,开启了安全检查。如果提交的信息中包含select、%、bin等关键字,Apache就会禁止连接并返回403、404、500等错误。
4、关于HawkHost空间出现403 Forbidden错误的解决方法
有时在共享服务器上安装了ModSecurity,当网址包含“%”等敏感字符时,ModSecurity会阻止连接。解决方法如下:
在.htaccess文件中添加以下代码:
将其直接放在网站的根目录或程序运行的目录下。
关于WordPress导致的403 Forbidden错误解决方法
对于使用WordPress管理程序搭建的博客,可以通过修改.htaccess文件来解决。在文件末尾添加以下内容来禁用mod_security:
对于DedeCMS,可能需要再添加一条以确保默认访问的是index.html文件的DirectoryIndex index.html。
通过修改.htaccess文件并重新上传,再次打开之前出现403 Forbidden的URL即可解决问题。
从SEO的角度来看,常见的403返回码意味着“forbidden”,这会告诉搜索引擎当前页面禁止访问。尽管搜索引擎不会立即删除该页面,但会在短期内反复尝试访问几次。如果网页最终允许访问,搜索引擎就会正常抓取内容。然而,如果长时间返回403错误,搜索引擎可能会认为该URL是无效链接,并将其删除。因此,建议网站所有者一旦发现网站出现403错误,务必及时修复,确保链接能够正常访问。对于不需要的页面,应该设置返回404状态码,按照404操作处理,这样可以避免对搜索引擎爬虫造成混淆。
解决 HTTP 错误 404.0 - Not Found 错误代码 0x80070002
当在 Windows Server 2008 上使用 IIS 7.5 部署网站后,可能会遇到访问首页正常,但访问其他地址时出现 HTTP 错误 404.0 - Not Found 的问题。例如,访问 http://localhost/ARCIMS/Website/lanzfc/veiwers.htm 时出现以下错误:
应用程序“DEFAULT WEB SITE”中的服务器错误
Internet Information Services 7.5
HTTP 错误 404.0 - Not Found
您要找的资源已被删除、已更名或暂时不可用。
详细错误信息:
模块:IIS Web Core
通知:MapRequestHandler
处理程序:StaticFile
错误代码:0x80070002
请求的 URL:http://localhost:80/ARCIMS/Website/lanzfc/veiwers.htm
物理路径:D:\inetpub\wwwroot\ARCIMS\Website\lanzfc\veiwers.htm
登录方法:匿名
登录用户:匿名
出现 0xC0000005: 写入位置 0x00000000 时发生访问冲突 的问题
在调试时发现,问题出现在 void inti(int arr[], int len) 函数中的数组初始化部分。百度搜索后得知,0xC0000005: 写入位置 0x00000000 时发生访问冲突 的错误可能是由于数组越界引起的。尝试增加堆栈段的大小后问题仍未解决。
以下是代码示例:
以上是示例代码,可能会导致数组越界的问题。为解决此错误,建议仔细检查代码逻辑,确保数组初始化时不会越界。
IIS 日志文件路径及常见 HTTP 状态代码
默认情况下,IIS 将其日志文件存储在 %WINDIR\System32\Logfiles 文件夹中。每个万维网(WWW)站点和 FTP 站点在该目录下都有一个独立的目录。默认情况下,每天都会在这些目录下创建日志文件,并以日期命名(例如,hnbzwlkj.com/lsedf/)。
以下是常见的 HTTP 状态代码及其含义:
1xx-信息提示
这些状态代码表示临时的响应。客户端在收到正常响应之前,应准备接收一个或多个 1xx 响应。
100-继续。
101-切换协议。
2xx-成功
这类状态代码表明服务器成功接受了客户端请求。
200-确定。客户端请求已成功。
201-已创建。
202-已接受。
203-非权威性信息。
204-无内容。
205-重置内容。
206-部分内容。
3xx-重定向
客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同页面,或通过代理服务器重复该请求。
301-对象已永久移走,即永久重定向。
302-对象已临时移动。
304-未修改。
307-临时重定向。
4xx-客户端错误
发生错误,客户端可能有问题。例如,客户端请求不存在的页面,或未提供有效的身份验证信息。
400-错误的请求。
401-访问被拒绝。
403-禁止访问。
404-未找到。
405-用来访问本页面的 HTTP 谓词不被允许。
406-客户端浏览器不接受所请求页面的 MIME 类型。
407-要求进行代理身份验证。
412-前提条件失败。
413–请求实体太大。
414-请求 URI 太长。
415–不支持的媒体类型。
416–所请求的范围无法满足。
417–执行失败。
423–锁定的错误。
5xx-服务器错误
服务器由于遇到错误而不能完成该请求。
500-内部服务器错误。
501-页眉值指定了未实现的配置。
502-网关或代理服务器收到了无效响应。
503-服务不可用。
504-网关超时。
505-HTTP 版本不受支持。
以上是常见的 HTTP 状态代码及其含义。通过了解这些代码,可以更好地理解网站运行过程中遇到的各种情况。