win主机ISAPI_Rewrite 2.X下的301重定向若干问题

网站因为改版,把原来的VPS换成了韩国空间,还更换了更容易记忆的域名,这样造成了两个必须解决的问题。

一、原域名到新域名的301重定向问题

seoer都知道,如果一个网站绑定多个域名势必会造成搜索引擎的误判,轻则降权,重则K站。而且两个域名会分享一个站的权重,这并不是我们希望看到的。很多时候,很多人会把**.com 301重定向到www.**.com,原因就在于此。

二、子目录重定向到二级域名的问题

因为原来用vps,有主机的操控权,主站和论坛在同一个目录下。现在改用虚拟主机,只能通过子目录绑定的方法实现双站同时运行。即wwwroot文件夹是主站(www.**.com),wwwroot\bbs\下是论坛(bbs.**.com)。但这样论坛可以通过www.**.com/bbs访问,这不是我想看到的,当然也不利于seo。

先说第一个问题:

更改域名后,重定向一定是永久的,之前的Business.com就是因为302非永久性重定向被Google直接K回老家,关键字消失,PR归零。网上有很多301重定向的文章,我这里主要说说wim2003、iis 6.0、ISAPI_Rewrite 2.x下利用httpd.ini来完成301重定向。把编辑好的httpd.ini上传到域名绑定的目录(不都是根目录),然后让虚拟主机服务商帮你加载。当然,如果你有ISAPI操作权限可以自己完成。httpd.ini文件只能替换,不能删除,如果误删,上传之后让服务商再加载一次。

wwwroot目录下的httpd.ini内容:

[ISAPI_Rewrite]

# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32

RewriteCond Host: ^www\.yyy\.com$

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

# 把www.yyy.com 永久重定向到www.**.com [I,RP]

RewriteCond Host: ^yyy\.com$

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

# 把yyy.com 永久重定向到www.**.com

RewriteCond Host: ^**\.com$

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

# 把**.com 永久重定向到www.**.com

wwwroot/bbs/目录下的httpd.ini内容:

[ISAPI_Rewrite]

# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32

RewriteCond Host: ^bbs\.yyy\.com$

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

# 把bbs.yyy.com 永久重定向到bbs.**.com

然后把域名 yyy.com、**.com、www.yyy.comwww.**.com绑定到wwwroot目录,把bbs.yyy.com与bbs.**.com绑定到wwwroot/bbs/目录,更换域名任务至此完成。

现在说说第二个问题:

域名重定向完成之后两天,我发现http://www.**.com/bbs 收录不少,但是bbs.**.com 收录为0,因为之前这个域名做过论坛,而且直接用域名+/bbs 作为域名。既然能一个域名重定向到另一个域名,那么肯定能把子目录定向到二级域名上。

在网上找了很多关于301重定向的文章,其中不乏月光博客博主的文章,但大都只是泛泛的讲用各种方法实现重定向,根本不符合本站的条件。找到了一篇ISAPI_Rewrite3.0下的子目录重定向到二级域名:但是与本站不符合。找了有关301方面的一些常识,然后写了一条规则,解决了这个问题。

[ISAPI_Rewrite]

# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32

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

此条规则写在wwwroot目录下的httpd.ini里。

这样,访问http://www.**.com/bbs/* 就会返回 http://bbs.**.com/*

至此,更换域名和绑定子目录完成。总结以上,可以得出:1.搜索引擎是个好东西。2.举一反三,互联网也有你找不到的东西。3.敢于尝试,不拘泥于已存在的规则。