网站建设中,时常会遇到需要网页重定向的情况,下面是常见的几种情况:
1.网站调整,如改变网页目录结构,网页被移到一个新地址。
2.网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失。
3.注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点。
常用的重定向方式有:
1. 301 redirect
301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
2. 302 redirect
302 代表暂时性转移(Temporarily Moved ),在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象Google前些年对Business.com以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。
3. meta fresh
这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之内),会被判断为spam。
这里我们主要谈谈如何通过301 Redirect实现网页重定向
IIS服务器实现301重定向
* 打开internet信息服务管理器,在欲重定向的网页或目录上按右键
* 选中“重定向到URL”
* 在对话框中输入目标页面的地址
* 切记,记得选中“资源的永久重定向”
* 当然,最后要点击“应用”
Apache服务器实现301重定向
相比较来说,Apache实现起来要比IIS简单多了。在Apache中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301重定向只是其中之一。
Redirect permanent / http://www.frankdu.com/blog/ ;
将目录下内容重定向到http://www.frankdu.com/blog/
Redirect permanent /old.html http://www.frankdu.com/blog/new_url ;
将网页old.html内容重定向到http://www.frankdu.com/blog/new_url
通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。有兴趣的朋友可参考Apache手册。
其他方法还有:
PHP下的301重定向
<? Header(“HTTP/1.1 301 Moved Permanently”);
Header(“Location: http://www.frankdu.com/blog” );?>
ASP下的301重定向
<%@ Language=VBScript %>
<% Response.Status=”301 Moved Permanently” Response.AddHeader “Location”, ” http://seo.highdiy.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://seo.highdiy.com”);
}
</script>
配置完成后,要认真检查一下是否正确。Internet有很多类似的Server Header检查工具,如Check Server Headers Tool – HTTP Status Codes Checker。