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前些年对business.com以及近来对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.dx
B2B.com/index.php?go=category_6(将网页index.php重定向到http://www.dxb2b.com/index.php?go=category_6)
通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。有兴趣的朋友可参考本站Apache手册。
PHP下的301重定向
<html>
<head>
<title>HTTP/1.1 301 Moved Permanently</title>
<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: www.dxb2b.com" );
?>
</head>
<body>
HTTP/1.1 301 Moved Permanently
</body>
</html>[2]
ASP下的301重定向
<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.dxb2b.com"
%>
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.dxb2b.com");
}
</script>
ColdFusion下的301重定向
<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://www.dxb2b.com"> 旧域名重定向到新域名
创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保旧域名所有的目录或者网页正确的跳转到新域名内。
记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件。
Options +FollowSymLinks RewriteEngine on
RewriteRule (.*) http://www.dxb2b.com/$1 [R=301,L]
请将上面的www.dxb2b.com修改成你想要跳转到的域名。
此外,我建议大家归总旧网站的外部链接,并联系相应的站点修改导入链链的URL,以指向新站点。
注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用。
域名301重定向到www的二级域名
首先要知道,www.dxb2b.com是domain.com域下的一个二级域名。
301跳转到www二级域的实现方式:
创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保所有来自对domain.com的请求都转向到对www.dxb2b.com进行请求。记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件。
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.dxb2b.com/$1 [L,R=301]
请将上面的domain.com和www.dxb2b.com修改成你想要跳转到的域名。
注意:.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="^dxb2b.com$" />
</conditions>
<action type="Redirect" url="http://www.dxb2b.com/{R:0}"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
将此web.config上传到网站根目录即可。别忘了把上面的dxb2b.com换成你的域名哦!
前提条件是:window主机的IIS版本必须是7.0或以上的。
在博客中设置301的方法
这里以Z-Blog为例详细介绍一下:
1. 复制如下代码,将代码中“###.com”改成你自己的网址。
if request.ServerVariables("SERVER_NAME")="###.com" then
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "http://www.###.com"
Response.End
end if
2. 进入Z-Blog后台,打开“文件管理”界面。
3. 找到并打开网站根目录下的 default.asp 文件。
4. 将以上代码加进 default.asp 在下图中红框所示位置。
5. 最后确定无误点击——提交——保存。
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.