在我们的网站扶植中,时常会碰到须要网页重定向的情况:象网站调剂,如改变网页目次构造,网页被移到一个新地址,再或者,网页扩大名改变,如因应用须要把.php改成.Html或.shtml,在这种情况下,如不雅不做重定向,则用户收藏夹或引擎数据库中旧地址只能让拜访客户还会获得一个404页面缺点信息,拜访流量白白损掉;再如某些注册了多个域名的网站,也须要经由过程重定向让拜访这些域名的用户主动跳转到主站点,等等。
常用的重定向方法有: 301 redirect, 302 redirect 与 meta fresh:
301 redirect: 301代表永远性转移(Permanently Moved),301重定向是网页更改地址后对引擎友爱的最好办法,只要不是临时搬移的情况,都建议应用301来做转址。
302 redirect: 302代表临时性转移(Temporarily Moved ),在前些年,不少Black Hat 引擎优化曾广泛应用这项技巧作弊,今朝,各大年夜重要引擎均加强了袭击力度,象Google前些年对Business.com以及比来对BMW德国网站的处罚。即使网站客不雅上不是spam,也很轻易被搜寻引擎轻易误判为spam而遭到处罚。
网站办事器响应网页浏览请求的运作流程
meta fresh: 这在2000年前比较风行,不过如今已很少见。其具体是经由过程网页中的meta指令,在特准时光后重定向到新的网页,如不雅延迟的时光太短(约5秒之內),会被断定为spam。
301 Redirect实现网页重定向
IIS办事器实现301重定向
* 打开internet信息办事治理器,在欲重定向的网页或目次上按竽暌挂键
* 在“重定向到”输入框中输入要跳转到的目标网页的URL地址
* 选中“资本的永远重定向”(切记)
记住.htaccess文件必定要放在旧网站的根目次下,并且新网站要和旧网站保持雷同的目次构造及网页文件
* 最后点击“应用”
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重定向
Header( "HTTP/1.1 301 Moved Permanently" ) ;
Header( "Location: http://www.bloghuman.com" );
?
ASP下的301重定向
<%@ Language=VBScript %>
<%
Response.AddHeader "Location","http://www.bloghuman.com"
%>
“我只有一个网站,主域名是www.domain.com,此外还有诸如domain1.com、domain2.com、domain3.com等共计十几个域名。所有这些次级域名都映射到www.domain.com,并且所有域名对应的是同一个IP地址。因为事实上我只有一个站点,一个站点又只能对应一个.htaccess文件,显然弗成能直接修改.htaccess文件来实现重定向。我采取了如下步调:
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.chinaz.com/web/2007/0709/"http://www.new-url.com">
旧域名重定向到新域名
{
创建一个.htaccess文件,并将下面供给的代码写入文件内,它可以确保旧域名所有的目次或者网页精确的跳转到新域名内。
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
请将膳绫擎的www.domain.com修改成你想要跳转到的域名。
此外,我建议大年夜家归总旧网站的外部链接,并接洽响应的┞肪点修改导入链链的URL,以指向新站点。
留意:.htaccess文件只有在应用安装有Mod Rewrite模块的Apache作为WEB办事器的Linux主机上才能起感化
域名301重定向到www的二级域名
在以前的文┞仿中我反复说起过:www.domain.com是domain.com域下的一个二级域名,并对二级域名和一级目次之间若何选择以及网站构造优化做了一个具体的分析,有兴趣的可以读一下两篇文┞仿,网站构造优化是引擎优化中最重要。
OK,持续域301跳转到www二级域的实现方法:
创建一个.htaccess文件,并将下面供给的代码写入文件内,它可以确保所有来自对domain.com的请求都转向到对www.domain.com进行请求。记住.htaccess文件必定要放在旧网站的根目次下,并且新网站要和旧网站保持雷同的目次构造及网页文件
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主机上才能起感化
301重定向检测对象
设备完成后,必定卖力检查一下是否精确。Internet有很多类似的Server Header检查对象,如Check Server Headers Tool - HTTP Status Codes Checker
网站302重定向应用欠妥导致被GOOGLE处罚
Response.Status="301 Moved Permanently"
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毫不会同情任何人即使无心犯下的缺点。
让我们先来懂得一下用户/引擎和网站一开端的交互流程。当用户或引擎向一个网站办事器发出网页浏览请求时,该办事器将:
2.打开一个该IP套接口连接
3.记下经由过程该套接口的一个HTTP数据流
4.大年夜WEB办事器接收一个响应请求的HTTP数据流。该数据流包含状况码,状况码的值由HTTP协定所决定。这里所说的“HTTP数据流”信息也叫“头信息(Header)”。头信息中包含了日期,办事器类型,平日还会有一条“200 OK”信息。如不雅一切优胜,那么收集办事器就会将“200 OK”信息以及请求页面发送出去。如不雅网站在这时刻已经建立了重定向,那么办事器就会在头信息中包含一个“302 Moved Temporarily”或“301 Moved Permanent”之类的响应信息。引擎会根据办事器头信息中的内容作出决定。
6.用ASP/PHP实现301重定向:
网站重定向的留意事项
* 选择“重定向到URL”
1.若预备将办事器汕9依υ?件移到其它处所时,须就以下信息精确地通知引擎的爬行法度榜样:
- 目标地址:这些文件被移向何方
2.对拥有多个域名的网站,专家建议应把那些不想在引擎上推广的域名用301跳转敕令来竽暌估久性重定向。
确保网站实施了精确的301重定向
对于精确切施301重定向,有如许几个办法可供大年夜家参考:
1.在.htaccess文件中增长301重定向指令
2.实用于应用Unix收集办事器的用户。经由过程此指令通知引擎的spider你的┞肪点文件不在此地址下。这是较为常用的办法。形如:Redirect 301 / http://www.yourdomain.com/
3.在办事器软件的体系治理员设备区完成301重定向
实用于应用Window收集办事器的用户
4.采取“mod_rewrite”技巧
经由过程该技巧进行的改变将在.htaccess文件中表现出来,形如:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain.com
1.经由过程域名办事器(DNS)将域名转换为网站的IP地址,然后返回给客户
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=permanent,L]
5.绑定/本地DNS(域名别号跳转)
如不雅具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。
若无此权限,则可请求网站托管办事商对DNS办事器进行响应设置。
DNS办事器的设置
若要将aaa.domain.com指向www.domain.com,则只需在DNS办事中应增长一个别号记录,可写成:aaa IN CNAME www.domain.com。
如需设备大年夜量的虚拟域名,则可写成:* IN CNAME www.domain.com.
如许就可将所有未设置的以domain.com结尾的记录全部重定向到www.domain.com上。
代码在膳绫擎已经介绍过了
资深引擎优化专家Dan Thies的看法和建议
对于Business.com所遭受的问题Dan Thies深有领会,因为他也有过类似的遭受。他的网站上有一个会员跟踪脚本,个一一个会员的┞肪点经由过程302敕令映射到这个跟踪脚本,而这个跟踪脚本又是经由过程302映射到他的主页。当在Google顶用“keyword research”进行,他的主页排名在前十位,然而地址显示的倒是那个会员的网址。结不雅使他哭笑不得:拜访者经由过程Google结不雅进入他的网站,而他却不得不为这些拜访量给那个会员付出待遇! 后来他用robots.txt文件禁止Spiders跟踪拜访他的会员跟踪脚本才算解决了问题。
对于Business.com,Dan Thies认为:“今朝Google在302重定向"的处理上还存在必定的问题,但并不表示Google不许可302重定向。Business.com并未遭封或遭到处罚,它们只是返回了缺点的响应。”
Dan Thies建议:如不雅应用了跟踪URL/脚本,又必须让拜访者重定向到某一着陆页,那么必定要在robots.txt文件中禁止Spiders去拜访第二个重定向。如不雅没有对跟踪URL/脚本进行重定向,而只是把别的一个URL上的内容给复制过来,那么竽暌功在robots.txt文件中禁止Spiders去拜访跟踪URL,以防因内容反复而遭引擎处罚。
301重定向经验谈
一个多域名站主的经验之谈:
A.把domain1.com大年夜domain.com上自力出来,让它成为办事器上的一个通俗自力网站。
B.为domain1.com创建一个.htaccess文本文件,并在文件中设置重定向代码为:
<?
Redirect permanent / http://www.domain.com/
再将修改后的.htaccess文件上传给domain1.com地点办事器。
这一步也可以在域名控制面板中完成。
C.进入域名控制面板,将所有本来绑定到domain.com上的域名大年夜domain.com上释放,然后从新绑定到doamin1.com。如许一来,这些被绑定的域名应用的都是domain1.com的.htaccess文件,因而也就意味着它们都被永远性重定向到domain.com上了。好了,大年夜功告成! 就这么轻易! |