301永久重定向及302重定向实现方式
常用的重定向方式有: 301 redirect, 302 redirect 与 meta fresh:
301 redirect: 301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
302 redirect: 302代表暂时性转移(Temporarily Moved ),在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象Google前些年对Business.com以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。
在我们的网站建设中,时常会遇到需要网页重定向的情况:象网站调整,如改变网页目录结构,网页被移到一个新地址,再或者,网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户还会得到一个404页面错误信息,访问流量白白丧失;再如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点,等等。
Apache服务器实现301重定向
在Apache中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301重定向只是其中之一。
将目录下内容重定向到http://www.viyin.net/
- Redirect permanent / http://viyin.net/
IIS服务器实现301重定向
- * 打开internet信息服务管理器,在欲重定向的网页或目录上按右键
- * 选择“重定向到URL”
- * 在“重定向到”输入框中输入要跳转到的目标网页的URL地址
- * 选中“资源的永久重定向”(切记)
- * 最后点击“应用”
PHP下的301重定向
- <?php
- Header( "HTTP/1.1 301 Moved Permanently" ) ;
- Header( "Location: http://www.viyin.net" );
- ?>
ASP下的301重定向
- <%@ Language=VBScript %>
- <%
- Response.Status="301 Moved Permanently"
- Response.AddHeader "Location","http://www.viyin.net"
- %>
ASP .NET下的301重定向
- <script runat="server">
- private void Page_Load(object sender, System.EventArgs e)
- {
- Response.Status = "301 Moved Permanently";
- Response.AddHeader ("Location","http://www.viyin.net");
- }
- </script>
ColdFusion下的301重定向
- <.cfheader statuscode="301" statustext="Moved permanently">
- <.cfheader name="Location" value="http://www.viyin.net">
网站服务器响应网页浏览请求的运作流程
当用户或搜索引擎向一个网站服务器发出网页浏览请求时,该服务器将:
1.通过域名服务器(DNS)将域名转换为网站的IP地址,然后返回给客户
2.打开一个该IP套接口连接
3.记下通过该套接口的一个HTTP数据流
4.从WEB服务器接收一个响应请求的HTTP数据流。该数据流包含状态码,状态码的值由HTTP协议所决定。这里所说的“HTTP数据流”信息也叫“头信息(Header)”。头信息中包括了日期,服务器类型,通常还会有一条“200 OK”信息。如果一切良好,那么网络服务器就会将“200 OK”信息以及请求页面发送出去。如果网站在这时候已经建立了重定向,那么服务器就会在头信息中包含一个“302 Moved Temporarily”或“301 Moved Permanent”之类的响应信息。搜索引擎会根据服务器头信息中的内容作出决定。
- 网站重定向的注意事项
- 1.若准备将服务器上的文件移到其它地方时,须就以下信息正确地通知搜索引擎的爬行程序:
- - 目标地址:这些文件被移向何方
- - 移动属性:暂时移走还是永久性移走
- 2.对拥有多个域名的网站,专家建议应把那些不想在搜索引擎上推广的域名用301跳转命令来永久性重定向。
301重定向经验谈
vi blog 有 www.viyin.net ,viyin.net,viyin.cn,www.viyin.cn,所有这些次级域名都映射到www.viyin.net,而且所有域名对应的是同一个IP地址。由于事实上我只有一个站点,一个站点又只能对应一个.htaccess文件,显然不可能直接修改.htaccess文件来实现重定向。我采用了如下步骤:
A.把viyin.cn,www.viyin.cn从viyin.net上独立出来,让它成为服务器上的一个普通独立网站。
B.为viyin.cn创建一个.htaccess文本文件,并在文件中设置重定向代码为:
- Redirect permanent / http://www.viyin.net/
再将修改后的.htaccess文件上传给viyin.cn所在服务器。
C.这些被绑定的域名使用的都是viyin.cn的.htaccess文件,因而也就意味着它们都被永久性重定向到www.viyin.net上了。
这就实现了。