什么是异常重定向?

敖游
2016-01-21
来源:遨游建站

重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。


我们在网站建设中,时常会遇到需要网页重定向的情况:

1.网站调整(如改变网页目录结构);

2.网页被移到一个新地址;

3.网页扩展名改变(如应用需要把.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(黑帽SEO)曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,像Google前些年对域名之王(Business)以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。

meta fresh

这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之内),会被判断为spam。


将网络请求重新指向其他位置即为重定向。常见的重定向有两种:永久重定向(301跳转协议)和暂时重定向(302跳转协议),目前百度都可以识别和支持。
对于长时间跳转到其他域名的情况,如网站更换域名,建议您使用301跳转协议。


重定向方法

301 Redirect实现网页重定向

IIS服务器实现301重定向

* 打开internet信息服务管理器,在欲重定向的网页或目录上按右键

* 选择“重定向到URL”

* 在“重定向到”输入框中输入要跳转到的目标网页的URL地址

* 选中“资源的永久重定向”(切记)

* 最后点击“应用”

Apache服务器实现301重定向

相比较来说,Apache实现起来要比IIS简单多了。在Apache中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301重定向只是其中之一。

Redirect permanent / http://www.bloghuman.com/ (将目录下内容重定向到http://www.bloghuman.com/ )

redirect permanent /index.php http://www.bloghuman.com/index.php?go=category_6(将网页index.php重定向到http://www.bloghuman.com/index.php?go=category_6)

通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。有兴趣的朋友可参考本站Apache手册。

PHP下的301重定向

<?php

Header( "HTTP/1.1 301 Moved Permanently" ) ;

Header( "Location: http://www.bloghuman.com" );

?>

ASP下的301重定向

<%@ Language=VBScript %>

<%

Response.Status="301 Moved Permanently"

Response.AddHeader "Location","http://www.bloghuman.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.bloghuman.com");

}

</script>

ColdFusion下的301重定向

<.cfheader statuscode="301" statustext="Moved permanently">

<.cfheader name="Location" value="http://www.new-url.com">

旧域名重定向到新域名

创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保旧域名所有的目录或者网页正确的跳转到新域名内。

记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件

Options +FollowSymLinks

RewriteEngine on

RewriteRule (.*) http://www.domain.com/$1 [R=301,L]

请将上面的www.domain.com修改成你想要跳转到的域名。

此外,这里建议大家归总旧网站的外部链接,并联系相应的站点修改导入链链的URL,以指向新站点。

域名301重定向到www的二级域名

在以前的文章中我反复提及过:www.domain.com是domain.com域下的一个二级域名,并对二级域名和一级目录之间如何选择以及网站结构优化做了一个详细的分析,有兴趣的可以读一下两篇文章,网站结构优化是SEO中最重要。

OK,继续域301跳转到www二级域的实现方式:

创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保所有来自对domain.com的请求都转向到对www.domain.com进行请求。

Options +FollowSymlinks

RewriteEngine on

rewritecond %{http_host} ^domain.com [nc]

rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

请将上面的domain.com和www.domain.com修改成你想要跳转到的域名。

注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用


重定向检测工具

配置完成后,一定认真检查一下是否正确。Internet有很多类似的Server Header检查工具,如Check Server Headers Tool - HTTP Status Codes Checker

网站302重定向使用不当导致被GOOGLE惩罚

Business.com是网上最大的商业搜索引擎和分类目录,以专业提供商业信息而享负盛名,包括近19万网页。若以“business”为关键词在Google中进行搜索,该网站名列第一。不过在9月5日,Business.com遇到一件蹊跷之事:它的首页由PR8变成了PR0, 而且Google搜索结果中找不到首页。好在被“蒸发”的只是首页,不过庆幸的是第二天首页又回到了Google的搜索结果,但PR仍旧为0。

Business.com的问题出在它的重定向命令上。该网站让business.com跳转到www.business.com,这种重定向本该是永久性的。我们知道,301属于永久性重定向,而302则属于临时性重定向,只有当一个网站或网页在24到48小时之内临时移到其它位置的情况下才能使用该命令。但Business.com却错误地使用了“HTTP/1.1302 Object Moved”状态码。

普遍现象

其实网站重定向极为普遍,譬如不满意原来的域名而申请了一个新域名;买下容易被人错拼的域名,防止客户因为拼错URL而找不到网站,等等。可是,很多人却会由于使用了错误的重定向状态码而遭“灭站之灾”,就象Business.com。尽管他们的重定向理由充分合理,然而若使用不当,则可能被Google误认为是利用多个域名指向同一网站,那么你的网站就会被封掉,罪名是“利用重复的内容来干扰Google搜索结果的网站排名”。Business.com就是最好的前车之鉴。只不过大多数使用错误重定向参数的网站没Business.com这么幸运,一个小小的重定向就可能使网站前功尽弃,只能从头来过:重新申请新域名,重新发布新网站,等等。记住:Google绝不会同情任何人即使无心犯下的错误。





什么是异常重定向.jpg

阅读86
分享
写评论...