ISAPI Rewrite实现301重定向(永久转向)

什么是301 Redirect
 
301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。其它常见的状态码还包括,200表示一切正常,404网页找不到,302暂时转向,等等。页面永久性移走(301重定向)是一种非常重要的“自动转向”技术。301重定向可促进搜索引擎优化效果从搜索引擎优化角度出发,301重定向是网址重定向最为可行的一种办法。当网站的域名发生变更后,搜索引擎只对新网址进行索引,同时又会把旧地址下原有的外部链接如数转移到新地址下,从而不会让网站的排名因为网址变更而收到丝毫影响。同样,在使用301永久性重定向命令让多个域名指向网站主域时,亦不会对网站的排名产生任何负面影响。
 
为什么要用301转向?
 
网址转向方法主要包括:301转向,302转向,JavaScript转向,PHP/ASP/CGI转向,META REFRESH网页META刷新,等。302转向可能会有URL规范化问题。其它方法都是常用的作弊手法,当然不是说不可以正当地用,方法本身没有错,但被作弊者用多了,搜索引擎对这些可疑的转向都很敏感。何必冒险呢。
当网页A用301重定向转到网页B时,搜索引擎可以肯定网页A永久的改变位置,或者说实际上不存在了,搜索引擎就会把网页B当作唯一有效目标。好处是,第一,没有网址规范化问题,第二,也很重要的,网页A的PR网页级别会传到网页B。
 
1、将zaitai.com转移到http://www.zaitai.com/
 
ISAPI_Rewrite 1.x
 
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
RewriteCond Host: ^zaitai\.com$
RewriteRule (.*) http\://www\.zaitai\.com$1 [I,R]
 
ISAPI_Rewrite 2.x
 
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
RewriteCond Host: ^zaitai\.com$
RewriteRule (.*) http\://www\.zaitai\.com$1 [I,RP]
 
ISAPI_Rewrite 3.x
 
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
RewriteCond %{HTTP:Host} ^zaitai\.com$
RewriteRule (.*) http\://www\.zaitai\.com$1 [NC,R=301]
 
2、不同页面间的301转向
 
ISAPI_Rewrite 1.x
 
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^/oldpage.html$ http://www.zaitai.com/newpage.html[I,O,R,L]
 
ISAPI_Rewrite 2.x
 
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^/oldpage.html$ http://www.zaitai.com/newpage.html[I,O,RP,L]
 
ISAPI_Rewrite 3.x
 
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^/oldpage.html$ http://www.zaitai.com/newpage.html[NC,L,R=301,O]
 
说明:[I,RP]:I表示忽略大小写,RP表示使用301转向,以上都是整个域名重定向。O表示对URL进行标准化,L表示Last Rule,最后一条规则,也就是后面的重写规则对他不起作用,防止被其他匹配的规则再次重写。这里的路径可以是相对路径也可以是绝对路径。
 
实例保存(httpd.ini):
 
[ISAPI_Rewrite]
RewriteCond Host: ^aok\.cc$
RewriteRule (.*) http\://www\.aok\.cc$1 [I,R]
RewriteCond Host: www\.aok\.cc
RewriteRule ^(.*)$ /000aok/$1 [I]
 
利用asp程序实现:
 
<%
sn=lcase(Request.ServerVariables("SERVER_NAME"))
if sn="http://www.zaitai.com/" then
server.Transfer("index.htm")
elseif sn="http://www.woaibeibei.com/" or sn="woaibeibei.com" then
response.redirect("http://www.woaibeibei.com/beibei/")
else
response.redirect("http://www.zaitai.com/")
end if
%>

posted @ 2012-06-02 09:12  witrays  阅读(721)  评论(0)    收藏  举报