首页 > 网站 > 利用 ISAPI Rewrite 做网站301永久重定向

利用 ISAPI Rewrite 做网站301永久重定向

2010年1月22日 发表评论 阅读评论
ISAPI Rewrite确实是个好东西,我们不仅用它可以实现简单的URL重写来实现搜索引擎友好(SEF)的URL形式,还可以利用 ISAPI Rewrite 实现防盗链,今天,我们再来说一下利用ISAPI Rewrite做301永久转向。

301转向(301 Redirect : Permanently Moved),表示内容永久性转移到新的URL,这样搜索引擎就会知道内容已转移,会去抓取新的URL,并把原来的权重完全转移到新的页面,因此是友好的。

注意,只有支持自定义URL重写规则的网站空间才能实现自定义的301转向。
ISAPI做301,必须是2.X以上的版本,有些虚拟空间ISAPI版本只是1.3的,不支持301,只能做302,当然通过其一点点小手段还是可以的.

域名间的301转向
有时,我们会在域名解析时,创建一个空的主机名,来方便用户输入网址,而省去了www。这样虽然方便了用户,但是从SEO的角度来说,是违反了URL标准化准则的,因此,我们需要对这些不统一的URL进行301重定向。

 
注意:本文列出的代码中包含了2.x与3.x版本2种规则,在你使用时务必确认自己使用的版本,否则是无法工作的。
下面的范例是我的网站原来www.wenhq.com.cn的域名因为cn的原因我把他们都转移到www.wenhq.com下.
# For ISAPI_Rewrite 2.x
RewriteCond Host: ^www\.wenhq\.com\.cn$

RewriteRule (.*) http\://www\.wenhq\.com$1 [I,RP]

 
# For ISAPI_Rewrite 3.x

RewriteCond %{HTTP:Host} ^www\.wenhq\.com\.cn$

RewriteRule (.*) http\://www\.wenhq\.com$1 [NC,R=301]

注释:在规则最后有[I,RP]标记,通过查阅ISAPI Rewrite 2官方使用手册我们知道,I表示忽略大小写,RP表示使用301转向

页面间的301转向
当我们改变了某些页面的地址,但是又不想损失流量,就应该使用301转向,将原来的URL重定向到新的URL上,这样搜索引擎会知道页面地址变更,而不会以为这个页面出错消失了。

规则如下:

# For ISAPI_Rewrite 2.x
RewriteRule ^/oldpage.htm$ http://www.wenhq.com/index.html [I,O,RP,L]

# For ISAPI_Rewrite 3.x
RewriteRule ^/oldpage.htm$ http://www.wenhq.com/index.html [NC,L,R=301,O]

 我们将根目录下的oldpage.htm使用301转向重定向到了http://www. wenhq.com/index.html,当然,我们也可以自己指定任意目的地址,可以是站内的(同样以/pagename的形式)或站点外的(以http://开头的URL形式)。
注释:这里出现的O表示对URL进行标准化,可能是用来处理Unicode编码的地址(例如包含中文的URL)以及QueryString的内容, 这里我没有测试过。而L表示Last Rule,最后一条规则,也就是后面的重写规则对他不起作用,防止被其他匹配的规则再次重写而造成混乱。
ISAPI版本为1.3的做301转向
一般我们的空间都支持asp或者php,下面以asp为范例了.
我需要把/test/下的html文件实现 301转向到新的域名
RewriteRule /test/(.*)\.html / test /rewrite.asp\?url=$1\.html
先把/ test的目录转到/ test/rewrite.asp\?url=$1\.html
rewrite.asp 的内容如下
<%

       dim url

       url=request.querystring("url")

       if Request.ServerVariables("SERVER_NAME")<>"www.wenhq.com" then

              Response.Status="301 Moved Permanently"

        Response.AddHeader "Location", "http://www.wenhq.com/test/" & url

       else

        Server.Execute(url)      

       end if

%>
分类: 网站 标签: , 4,547 次阅读
原文链接:http://www.wenhq.com/article/view_425.html
欢迎转载,请注明出处:亲亲宝宝
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.