404错误提示302的原因分析及解决
2013-02-17 15:45
295 查看
最近发现一奇怪现象,网站一些链接被百度收录,失效后一直无法去除,经过一番研究找到一些端倪。
首先用谷歌浏览器的firebug工具测试404,发现提示302错误。302错误表示被请求的资源暂时转移(Moved temporatily),然后会给出一个转移后的URL。虽然对访问的用户而言,HTTP状态码究竟是“404”还是“302”来说并没有什么区别,但对搜索引擎这则是相当重要的。
搜索引擎蜘蛛在请求某个URL时得到“404”状态回应时,即知道该URL已经失效,便不再索引该网页,并向数据中心反馈将该URL表示的网页从索引数据库中删除,当然,删除过程有可能需要一段时间;而当搜索引擎得到“302”或“200”状态码时,则会认为该url是有效的,索引数据库中便会一直保留,于是就会出现搜索引擎上收录了很多失效链接却一直不能去除的现象,从而有可能导致网站被降权。
由此看出,自定义404错误页面是增强用户体验的很好的做法,但在应用过程中一定要注意对搜索引擎的影响,譬如:错误的服务器端配置导致返回“200”状态码,或自定义404错误页面使用Meta Refresh导致返回“302”状态码。正确设置的自定义404错误页面,不仅应当能够正确地显示,同时,应该返回“404”错误代码,而不是 “200”或“302”。
解决方法如下:在Apache的配置文件中,注意ErrorDocument 404后面不要写URL地址,应该写具体文件路径,ErrorDocument 404 "/404.html"这样子。修改后重启httpd服务,再测试,提示已变为404。也可以用404测试工具,http://tool.seowhy.com/http404/。
需要注意,虚拟主机对应的各个目录下也需要有404.html这个文件,否则各个频道下的无效链接将返回系统默认的404提示页面,而不能返回自定义的404页面。也就是说404.html这个文件要同时放置在网站根目录和虚拟主机对应的各个目录下。我的方法是在虚拟主机对应的各个目录下建立符号链接文件,链接到根目录下的404.html文件,这样如果以后修改404.html时,只需修改根目录下的404.html文件即可。本文出自 “起舞云端” 博客,请务必保留此出处http://75clouds.blog.51cto.com/3054635/1134481
首先用谷歌浏览器的firebug工具测试404,发现提示302错误。302错误表示被请求的资源暂时转移(Moved temporatily),然后会给出一个转移后的URL。虽然对访问的用户而言,HTTP状态码究竟是“404”还是“302”来说并没有什么区别,但对搜索引擎这则是相当重要的。
搜索引擎蜘蛛在请求某个URL时得到“404”状态回应时,即知道该URL已经失效,便不再索引该网页,并向数据中心反馈将该URL表示的网页从索引数据库中删除,当然,删除过程有可能需要一段时间;而当搜索引擎得到“302”或“200”状态码时,则会认为该url是有效的,索引数据库中便会一直保留,于是就会出现搜索引擎上收录了很多失效链接却一直不能去除的现象,从而有可能导致网站被降权。
由此看出,自定义404错误页面是增强用户体验的很好的做法,但在应用过程中一定要注意对搜索引擎的影响,譬如:错误的服务器端配置导致返回“200”状态码,或自定义404错误页面使用Meta Refresh导致返回“302”状态码。正确设置的自定义404错误页面,不仅应当能够正确地显示,同时,应该返回“404”错误代码,而不是 “200”或“302”。
解决方法如下:在Apache的配置文件中,注意ErrorDocument 404后面不要写URL地址,应该写具体文件路径,ErrorDocument 404 "/404.html"这样子。修改后重启httpd服务,再测试,提示已变为404。也可以用404测试工具,http://tool.seowhy.com/http404/。
需要注意,虚拟主机对应的各个目录下也需要有404.html这个文件,否则各个频道下的无效链接将返回系统默认的404提示页面,而不能返回自定义的404页面。也就是说404.html这个文件要同时放置在网站根目录和虚拟主机对应的各个目录下。我的方法是在虚拟主机对应的各个目录下建立符号链接文件,链接到根目录下的404.html文件,这样如果以后修改404.html时,只需修改根目录下的404.html文件即可。本文出自 “起舞云端” 博客,请务必保留此出处http://75clouds.blog.51cto.com/3054635/1134481
相关文章推荐
- 在命令行下编译通过,运行时提示错误:找不到或无法加载主类的原因分析与解决方式
- Android 启动模拟器是出现“Failed to allocate memory: 8”错误提示的原因及解决办法
- MySQL 错误1418 的原因分析及解决方法
- Android 启动模拟器是出现“Failed to allocate memory: 8”错误提示的原因及解决办法
- win7系统开机提示错误代码parity check 2的故障分析及解决方法
- Android 启动模拟器是出现“Failed to allocate memory: 8”错误提示的原因及解决办法
- ADSL拨号提示错误 代码分析及解决方法
- MySQL 错误1418 的原因分析及解决方法
- tomcat项目迁移,无法访问,报“404”错误,原因分析
- win10系统开机提示登录组件错误4 请重新启动电脑管家的原因及解决方法
- 宽带连接错误提示678和691的原因,解决方法
- MySQL 错误1418 的原因分析及解决方法
- LNK2001链接错误产生的原因分析和解决办法
- MySQL 错误1418 的原因分析及解决方法
- Win7系统无法上网提示错误651找调制解调器报告了一个错误的原因及解决方法
- wordpress 安装、升级500 interal server error错误原因分析及解决办法
- 关于VS2017编译linux程序时,错误提示信息太简单,看不出错误原因的解决办法
- 关于ThinkPHP下使用Uploadify插件 仅有火狐提示HTTP Error (302)错误的解决办法
- MySQL This function has none of DETERMINISTIC, NO SQL...错误1418 的原因分析及解决方法 (转)
- MySQL This function has none of DETERMINISTIC, NO SQL...错误1418 的原因分析及解决方法