cl991036
管理员
管理员
  • 注册日期2003-07-25
  • 发帖数5913
  • QQ14265545
  • 铜币29658枚
  • 威望213点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • GIS帝国铁杆
阅读:1207回复:0

[转]从HTTP状态 301,302,200 来看页面跳转

楼主#
更多 发布于:2007-09-25 11:56
<DIV class=postbody>
<P><STRONG>301和302 Http状态有啥区别?</STRONG></P>
<P>301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于:
<P>301 redirect: 301 代表永久性转移(Permanently Moved),
<P>302 redirect: 302 代表暂时性转移(Temporarily Moved ),
<P>当然 Http 状态 200 标示没有任何问题发生。

<P><STRONG>这两种转移在使用的时候有啥好处或者问题?</STRONG></P>
<P>301 重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
<P>302 重定向是临时性转移。 </P>
<P>在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象Google前些年对Business.com以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。 </P>
<P>研究搜索引擎优化(SEO)的人,应该都知道,301,302 使用不当,或者灵活使用会有不错的效果的,比如参看下面文章:</P>
<P><a href="http://www.jzxue.com/Html/google/011117403024005.html" target="_blank" >302转向与网址劫持</A></P>
<P><a href="http://www.chinamyhosting.com/seoblog/2006/04/12/301-redirect/" target="_blank" >301转向和网址规范化</A>
<P><a href="http://www.williamlong.info/archives/484.html" target="_blank" >301重定向的实现方法</A><BR><a href="http://www.51windows.net/data/?url=/data/files/file_407.asp" target="_blank" >51window提供的301转向的代码</A><BR><a href="http://jesse.blogs-china.com/200510/58.html" target="_blank" >一个网站十几个域名的重定向经验谈</A><BR><a href="http://jesse.blogs-china.com/200510/31.html" target="_blank" >几个常用的301重定向</A>


<P>如果是运维人员,配置WEB服务器的一些设置就可以实现跳转,比如下面一些关于IIS实现重定向的文章</P>
<P>将请求重定向到文件、目录或程序 (IIS 6.0)</P>
<P><a href="http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/fbcccfce-6695-4f92-bd55-869d85ff49fb.mspx?mfr=true" target="_blank" >http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/fbcccfce-6695-4f92-bd55-869d85ff49fb.mspx?mfr=true</A></P>
<P>重定向参考 (IIS 6.0)</P>
<P><a href="http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/41c238b2-1188-488f-bf2d-464383b1bb08.mspx?mfr=true" target="_blank" >http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/iis/41c238b2-1188-488f-bf2d-464383b1bb08.mspx?mfr=true</A></P>
<P>其他WEB服务器也可以通过设置实现跳转,我就不罗列了。</P>


<P><STRONG>从技术人员来说我们比较常用的跳转方法有以下几种:</STRONG></P>
<P>我们使用 <a href="http://www.fiddler2.com/" target="_blank" >Fiddler</A> 工具来监控的下面提到的几种方法,看跳转过程中HTTP状态码是301?302?200?:</P>

<P>方法1:Response.Redirect("Test.aspx");</P>
<P>状态码 301  临时性跳转</P>

<P>方法2:<meta http-equiv="refresh" content="5; URL=Test.aspx" /></P>
<P>meta fresh: 这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之內),会被判断为spam。这种跳转方式,整个跳转过程中,页面Http状态都是200,即,页面没有任何错误发生。</P>

<P>方法3:Server.Transfer("Test.aspx");</P>
<P>这种跳转方式,整个跳转过程中,页面Http状态都是200,即,页面没有任何错误发生。</P>

<P>方法4:URLRewrite</P>
<P>这种跳转方式,整个跳转过程中,页面Http状态都是200,即,页面没有任何错误发生。</P>

<P>没有一种是301跳转。也就是上面几种跳转方式都用不到301跳转的好处。</P>

<P><STRONG>使用301跳转有啥好处呢?</STRONG></P>
<P>SEO(搜索引擎优化)中提到一点:如果我们把一个地址采用301跳转方式跳转的话,搜索引擎会把老地址的PageRank等信息带到新地址,同时在搜索引擎索引库中彻底废弃掉原先的老地址。</P>

<P><STRONG>如何编码实现301跳转呢?</STRONG></P>
<P>Response.Status = "301 Moved Permanently";<BR>Response.AddHeader("Location","...");
<P>这里的 ... 表示你要跳转去的页面。</P>


<P><STRONG>参考资料:</STRONG></P>
<P><a href="http://idoall.org/blogs/ian/archive/2007/08/12/301-302.aspx" target="_blank" >301永久重定向实现方式及302重定向</A></P></DIV>
喜欢0 评分0
没钱又丑,农村户口。头可断,发型一定不能乱。 邮箱:gisempire@qq.com
游客

返回顶部