欢迎各位兄弟 发布技术文章
这里的技术是共享的
301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。
2、什么是302重定向?
302重定向又称之为302代表暂时性转移(Temporarily Moved ),英文名称:302 redirect。 也被认为是暂时重定向(temporary redirect),一条对网站浏览器的指令来显示浏览器被要求显示的不同的URL,当一个网页经历过短期的URL的变化时使用。一个暂时重定向是一种服 务器端的重定向,能够被搜索引擎蜘蛛正确地处理。
3、301重定向与302重定向的区别
302重定向是暂时的重定向,搜索引擎会抓取新的内容而保留旧的网址。因为服务器返回302代码,搜索引擎认为新的网址只是暂时的。 SEO 302好于301
301重定向是永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。
来自 http://blog.sina.com.cn/s/blog_6f2274fb0100vo1b.html
在web开发的时候经常会遇到页面重定向的问题,说起重定向就不得不说HTTP STATUS CODE 301 和302. 301 是Moved Permanently,也就是"永久转移", 302则是Temporarily Moved,是"暂时转移"。
在生产环境,建议使用301永久重定向,不使用302临时跳转,因为对于搜索引擎来说,会自动将原来页面的收录和权重转移到新的页面,有利于SEO.
把C#代码写在前台aspx页面中,好处是不用编译就可以发布。直接使用Redirect就是302跳转。
<% Response.Redirect("http://www.qidian.com"); %>
如果在跳转的时候加一些HTTP HEADER,在.net 2.0下也可实现301永久转移。
<% Response.Status = "301 Moved Permanently"; Response.AddHeader("X-Message", "By fanyong @ SNDA"); Response.AddHeader("Location", "http://www.qidian.com/"); Response.Write("<head><title>Document Moved</title></head><body><h1>Object Moved</h1>This document may be found <a HREF=\"http://www.qidian.com\">here</a></body>"); Response.End(); %>
当然,在高版本的Framework中,直接使用:
Response.RedirectPermanent() 实现301永久转移。
<script type="text/javascript"> window.onload=function redirct2qidian(){ window.location.href="http://www.qidian.com/"; } </script>
或者通过:
<meta http-equiv="Refresh" content="3; url=http://www.qidian.com" />
这2种方法的缺点是搜索引擎蜘蛛不会执行js,所以使用js跳转不会把原来页面的权重转移到新的页面,而且搜索引擎对于javascript重定向以及meta刷新会认定为欺骗而进行惩罚。因此不可取。
<?php Header("HTTP/1.1 301 Moved Permanently"); Header("Location: http://www.baidu.com"); ?>
来自 http://www.cnblogs.com/fanyong/archive/2013/07/20/3202586.html
302 作为HTTP1.0的标准,以前叫做Moved Temporarily ,现在叫Found. 现在使用只是为了兼容性的处理,包括PHP的默认Location重定向用的也是302.
但是HTTP 1.1 有303 和307作为详细的补充,其实是对302的细化
303:对于POST请求,它表示请求已经被处理,客户端可以接着使用GET方法去请求Location里的URI。
307:对于POST请求,表示请求还没有被处理,客户端应该向Location里的URI重新发起POST请求。
实际测试:
测试内容:
写一个测试的test.html代码,发起post请求到test.php页面中
test.php页面分别给出3种重定向处理,都跳到test2.php
test2.php打印出post的结果
(至于怎么写..自己查手册吧,PHP发送头很容易.)
测试结果:
301,302和303的处理结果是一样的,直接跳转到test2.php,post没有内容
307的会重新post请求到test2.php,并且给出页面提示
来源:http://leexj1981.blog.163.com/blog/static/14393065920103192952974/
来自 http://blog.sina.com.cn/s/blog_62ec29160101f3u3.html
一、状态码——302
二、状态码——303和307
三、总结