当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。 HTTP 状态码的英文为 HTTP Status Code 。
HTTP状态码是用以表示网页服务器HTTP响应状态的3位数字代码。各位站长在平时维护网站过程中,可能会在站长工具后台抓取异常里面或者服务器日志里看到各种各样的响应状态码,有些甚至会影响网站的SEO效果,下面百度工程师为大家整理了一些常见的HTTP状态码及处理解决的方法:
301:(永久移动)请求的网页已被永久移动到新位置。服务器返回此响应(作为对GET或HEAD请求的响应)时,会自动将请求者转到新位置。
使用环境及影响:当站点迁移,域名变更、网站改版时,建议使用301返回码,除了能减少网站改版带来的流量损失,还能通过此代码通知Baiduspider某个网页或网站已被永久移动到新位置,从而将权重和排名尽快转移到目标页面。
IIS服务器解决方案:打开internet信息服务管理器,在欲重定向的网页或目录上按右键,选择“重定向到URL”,在“重定向到”输入框中输入要跳转到的目标网页的URL地址,选中“资源的永久重定向”(切记),最后点击“应用”。
Apache服务器解决方案:在Apache中,只需要找到.htaccess文件,通过对它的设置,即可实现301设置。找到redirectpermanent/old-url.htmlhttp://new-url.com:修改这句即可。
302:(临时移动)服务器目前正从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。此代码与响应GET和HEAD请求的301代码类似,会自动将请求者转到不同的位置。
使用环境及影响:302代码一般默认为临时跳转,仅用于暂时跳转至新的临时性的URL或网址。一般来说Baiduspider仍会继续抓取原有位置并将其编入索引。因经常被用于域名网址劫持等黑帽作弊,很多站长觉得百度对302并不友好,若是永久移动某个页面或者网站不建议使用该代码。
解决方案:若是永久移动某个页面,IIS服务器只需跟设置301步骤一样,最后一项记得选择”该资源将永久跳转“,Apache服务器则在.htaccess文件中进行Rewrite重写即可;一般在批量设置URL重定向规则时要用到正则表达式。
400:(错误请求)服务器不理解请求的语法。
使用环境及影响:一般出现这个状态码分为两种情况:1、语义有误,当前请求无法被服务器理解。2、访问的页面域名不存在或者请求错误。
解决方案:在确定域名或URL没有输错的前提下,首先可以Ping一下域名,看看是否解析到服务器或空间所在的IP,如果是,可以去空间的管理面板看有没有绑定域名,如果有,那有可能是空间提供商的问题了,找空间提供商解决即可!
403:(已禁止)服务器已经理解请求,但是拒绝执行它。
使用环境及影响:一般出现这个状态码可以简单理解为没有访问权限,通常需要对服务器上的文件或目录进行权限设置时使用;若在Baiduspider尝试抓取你网站上的有效网页时显示此状态代码,则可能是你的服务器或主机拒绝Baiduspider对其进行访问,如果长期返回403,搜索引擎会认为该URL是失效链接,将会对其进行删除,为此对搜索引擎并不友好。
解决方案:解决服务器403问题要分情况而定,若是因为DNS解析错误,或者因为连接用户过多,服务器繁忙导致,则可通过重建dns缓存来解决;若是文件夹安全属性设置错误导致,则要修改文件夹安全属性;确实有某些页面不希望被搜索引擎收录的,建议通过写进robots规则文件来屏蔽蜘蛛收录即可。
另外几种解决403forbidden错误的办法:
apache导致的403forbidden错误的解决办法
打开apache的配置文件httpd.conf,找到这段代码:
OptionsFollowSymLinks
AllowOverrideNone
Orderdeny,allow
Denyfromall
有时候由于配置了php后,这里的“Denyfromall”已经拒绝了一切连接。把该行改成“allowfromall”,修改后的代码如下,问题解决。
OptionsFollowSymLinks
AllowOverrideNone
Orderdeny,allow
Allowfromall
之所以会出现错误,是因为大多数的国外主机在配置Apache的时候启用了mod_security,也就是开启了安全检查,如果提交的信息中包含select,%,bin等关键字,Apache就会禁止,并给出403,404,500等错误。 HawkHost空间出现403Forbidden错误
有的时候在共享服务器上安装了Modsecurity,当网址包含有“%”号等其它敏感字符时,也会被Modsecurity阻止。
解决方法:.htaccess文件里添加如下代码:
SecFilterEngineOff
SecFilterScanPOSTOff
直接放在网站的根目录或者程序运行的目录下。
404:(未找到)服务器找不到请求的网页。
使用环境及影响:例如,如果请求是针对服务器上不存在的网页进行的,那么服务器通常要返回此代码。Baiduspider通常会认为该网页已经失效,从而在搜索结果中进行删除,并且短期内spider再次发现这条URL也不会抓取。 这里不得不提的一点,很多站长想自定义404页面,需要做到确保spider访问时返回状态码为404,若因为404页面跳转时设置不当,返回了200状态码,则容易被搜索引擎认为网站上出现了大量重复页面,从而造成降权。
解决方案:对于存在的网页内容由于路径改变而导致访问不了时,应该使用301永久重定向跳转到新的地址,让服务器返回301状态码,这对搜索引擎是最友好的;若某个页面内容确实已经被删除,或者过期失效,则应该制作一个友好的404文件页面,同时确保该页面返回的是404状态码。
408:(请求超时)服务器等候请求时超时。
使用环境及影响:客户端没有在服务器预备等待的时间内完成一个请求的发送时返回此代码;若Baiduspider在对网站进行访问时,长期返回此代码,则搜索引擎会认为该网站空间访问速度不稳定,从而影响排名;
解决方案:检查Web服务器的工作量,看是由于访问量激增导致,还是客户端系统的工作量导致,如果两者都不是,建议检查服务器网络或者更换更好的空间服务商。
410:(已删除)请求的资源已被永久移除。
使用环境及影响:这个状态码的使用跟404有点类似,当一个文件从服务器上被永久地移除(而非转移到其它位置)时,可以使用410状态码,告诉搜索引擎删除已经收录的链接,避免搜索引擎再次访问时出现死链。
解决方案:当服务器出现该状态码时,需要检查该资源是否确定被永久移除,若网址还是有效的,那就表示Web服务器的设置有一些错误,需要进行相应的设置。若是被转移,则应使用301代码指定该资源的新位置。
500:(服务器内部错误)服务器遇到错误,无法完成请求。
使用环境及影响:页面代码出错时返回的状态。一般来说当访问的网站或者页面ASP或者PHP等出现代码错误,如语法错误、数据库连接错误等,而恰好服务器环境关闭了出错信息的输出提示,则出现500错误反馈。网站若返回大量500错误,不仅对用户体验不友好,也会影响搜索引擎对该页面的评分从而影响排名。
解决方案:首先检查下网页的源代码,看下是否存在不规范的语法错拼、代码缺少等导致页面验证失败,或者数据库连接语句出错等问题。若没有,则检查下服务器是否正常响应,是否安装了服务器不支持的组件等,必要的话可以重启下服务器。
502:(错误网关)服务器作为网关或代理,从上游服务器收到了无效的响应。
使用环境及影响:该代码一般由于网关错误而造成的(不一定是自身的web服务器),当作为网关或代理的服务器与上层内容服务器联络时,收到无效的响应时则返回该代码。
解决方案:首先在排除是我们浏览器使用了代理前提下,可以尝试清除浏览器缓存,再者检查下网关是否配置正确,或者刷新服务器,尝试重新发送请求。
503:(服务不可用)目前无法使用服务器(由于超载或进行停机维护)。通常,这只是一种暂时的状态。
使用环境及影响:网站临时关闭或其他临时情况,如宽带超限、服务器响应不及时等,应该返回此代码。一般来说Baiduspider会认为该网页临时不可访问,不会把这条URL直接删除,短期内会再访问。届时如果网页恢复,则正常抓取。这也是503和404的区别,如果是404则通常会从搜索结果中删除,并后续不会再抓取。
解决方案:一般这种情况是由网站服务器关闭或维护造成的,联系服务器管理员或者服务商解决即可!
504:(网关超时)服务器作为网关或代理,未及时从上游服务器接收请求。
使用环境及影响:作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。
解决方案:这个错误完全是由后端电脑之间IP通讯缓慢而产生,可能包括Web服务器。为此该问题一般需要站长和互联网服务供应商(ISP)及Web服务器软件供应商联络,检查在其控制下的不同电脑之间的IP数据传输的流通状况来进行解决。
505:(HTTP版本不受支持)
使用环境:服务器不支持,或者拒绝支持在请求中使用的HTTP版本。这暗示着服务器不能或不愿使用与客户端相同的版本。
解决方案:如果出现这个错误,可以通过升级Web服务器软件。如果版本1.x的请求失败,很可能是因为你的Web服务器不是很好地支持1.x协议版本,而不是完全不支持。