页*面永久性移走(301重定向)是一种非常重要的“自动转向”技术。网*址重定向最为可行的一种办法。当用*户或搜索*引擎向网站服*务*器发出浏览请求时,服*务*器返回的HTTP数据流中头信*息(header)中的状态码的一种,表示本网页永久性转移到另一个地*址。
一、域*名定向
路由选择的变化也是对数据报文经由路径的一种重定向。
在我们网站建设中,时常会遇到需要网页重定向的情况:像网站调整,改变了网站的目录结构,网页被移到一个新地*址。或者网页扩展名改变,如因应用需要 把.php改成.Html或.shtml,在这些情况下,如果不做重定向,则用*户收藏夹或搜索*引擎数据库中旧地*址只能让访问客*户得到一个404页*面错误信 息,访问流*量白白丧失。又比如某些注*册了多个域*名的网站,也需要通过重定向让访问这些域*名的用*户自动跳转到主站点,等等。
二、方*式介绍
常用的重定向方*式有: 301 redirect, 302 redirect 与 meta fresh:
301 redirect::301代表永久性转移(Permanently Moved),301重定向是网页更改地*址后对搜索*引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
302 redirect::302 代表暂时性转移(Temporarily Moved ),在前些年,不少Black Hat SEO曾广泛应用这项技术作*弊。各大主要搜索*引擎均加强了打击力度,像Google对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻 引擎误判为spam而遭到惩罚。
meta fresh: 这在2000年前比较流行,它具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之内),会被判断为spam。
IIS服*务*器实现301重定向
* 打开internet信*息服*务*管*理器,在欲重定向的网页或目录上按右键,选择“重定向到URL”,
* 此处以重定向到百度为例
* 在“重定向到”输入框中输入要跳转到的目标网页的URL地*址
* 选中“资源的永久重定向”(切记)
* 最后点击“应用”
Apache服*务*器实现301重定向
相比较来说,Apache实现起来要比IIS简单多了。在Apache中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301重定向只是其中之一。
redirect permanent /index.php http://www/index.php?go=category_6(将网页index.php重定向到http://www./index.php?go=category_6)
通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。有兴趣的朋友可参考本站Apache手册。
PHP下的301重定向
<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www" );
exit;
?>
<html>
<head>
<title>HTTP/1.1 301 Moved Permanently</title>
</head>
<body>
HTTP/1.1 301 Moved Permanently
</body>
</html>
ASP下的301重定向
<%@ Language=VBScript %>
<%
1.Status="301 Moved Permanently"
2.AddHeader "Location","http://"
%>
ASP .NET下的301重定向
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
1.Status = "301 Moved Permanently";
2.AddHeader ("Location","http://www);
}
</script>
ColdFusion下的301重定向
<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://www."> 旧域*名重定向到新域*名
创建一个.htaccess文件,并将下面提供的代*码写入文件内,它可以确保旧域*名所有的目录或者网页正确的跳转到新域*名内。
记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件。
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www/$1 [R=301,L]
请将上面的wwwdomaincom修改成你想要跳转到的域*名。
此外,我建议大家归总旧网站的外部连接,并联*系相应的站点修改导入连连的URL,以指向新站点。
注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服*务*器的Linux主机上才能起作用。
域*名301重定向到www的二级域*名
首先要知道,www.是domaincom域下的一个二级域*名。
301跳转到www二级域的实现方*式:
创建一个.htaccess文件,并将下面提供的代*码写入文件内,它可以确保所有来自对domaincom的请求都转向到对www进行请求。记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件。
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^ [NC]
RewriteRule ^(.*)$ http://www./$1 [L,R=301]
请将上面的domaincom修改成你想要跳转到的域*名。
注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服*务*器的Linux主机上才能起作用。
ASP下使用web.config来实现301重定向
如果网站根目录没有web.config就新建一个文本文档,保存成web.config即可,代*码如下:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WWW Redirect" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^$" />
</conditions>
<action type="Redirect" url="http://www/{R:0}"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
将此web.config上传到网站根目录即可。别忘了把上面的domaincom换成你的域*名哦!
前提条件是:window主机的IIS版本必须是7.0或以上的。
在博*客中设置301的方法
这里以Z-Blog为例详细介绍一下:
1.复制如下代*码,将代*码中”改成你自己的网*址。
if request.ServerVariables("SERVER_NAME")" then
1.Status="301 Moved Permanently"
2.AddHeader "Location", ""
3.End
end if
1.进入Z-Blog后台,打开“文件管*理”界面。
2.找到并打开网站根目录下的 default.asp 文件。
3.将以上代*码加进 default.asp 在下图中红框所示位置。
4.最后确定无误点击--提交--保存。
三、检测工*具
301重定向是在搜索*引擎优化中一个很常用的操作,可以帮助我们转移域*名的权*重。但是在做301重定向的时候由于服*务*器系*统、网站程*序语言、域*名和连接地*址的不同,使用的方法也不同。这个时候我们长春电缆桥架就要使用301重定向检测工*具,来检测我们的301重定向是否成功。
HttpWatch检测工*具
HttpWatch是强大的网页数据分析工*具,集成在Internet Explorer工*具栏。包括网页摘要、Cookies管*理、缓存管*理、消息头发送/接受、字符查询、报告输出、POST 数据和目录管*理功能。
在IE工*具栏中 查看--浏览器栏--httpwatch 打开,也可以使用快捷键shift+F2打开。
状态为:301状态 从demo1.php 成功301跳转到demo9.php ,验证301重定向设置成功。
Chinaz站*长工*具
chinaz站*长工*具是业内有名的站*长工*具。其功能非常丰富,点击http状态码查询,输入网*址,可以查询出网站的http状态码,确保是301而不是302.
四、运作流程
网站服*务*器响应网页浏览请求的运作流程
让我们先来了解一下用*户/搜索*引擎和网站一开始的交互流程。当用*户或搜索*引擎向一个网站服*务*器发出网页浏览请求时,该服*务*器将:
通过域*名服*务*器(DNS)将域*名转换为网站的IP地*址,然后返回给客*户;
打开一个该IP套接口连接;
记下通过该套接口的一个HTTP数据流;
从WEB服*务*器接收一个响应请求的HTTP数据流。该数据流包含状态码,状态码的值由HTTP协*议所决定。这里所说的“HTTP数据流”信*息也叫“头信 息(Header)”。头信*息中包括了日期,服*务*器类型,通常还会有一条“200 OK”信*息。如果一切良好,那么网络服*务*器就会将“200 OK”信*息以及请求页*面发送出去。如果网站在这时候已经建立了重定向,那么服*务*器长春桥架厂就会在头信*息中包含一个“302 Moved Temporarily”或“301 Moved Permanent”之类的响应信*息。搜索*引擎会根据服*务*器头信*息中的内容作出决定。
什么时候用301重定向
1.域*名到期了不想续费,想换个域*名。
2.在搜索*引擎的搜索结果中出现了不带www的域*名,而带www的域*名缺没有收录,这个时候我们就可以使用301重定向,来告诉搜索*引擎我们目标的域*名是哪一个。
3.空间服*务*器不稳定,换空间的时候。