Neil Developer

通过.htaccess 的rewriterule 新旧网站的无缝转换,不丢权重

2013-05-04
Neil

举个例子,  本来有个 A.com 的网站,  做了一定的人气, 有了权重.  因为人流量上升, 这个时候想更换网站程序, 比如做成一个论坛社区.

很简单想到的就是把 A.com 直接指向新的网站就行了.  但是这样, 以前的A.com 的所有的外链都失效了. 对权重非常不利.

主要目标有两个, 第一不丢失以前的外链.  第二让A.com的权重完全转到新的论坛.

我们可以这样实现.  1. 保留原网站, 这是为了确保, 外链都有效.  2, 把 A.com  重定向到  bbs.A.com

这里有一个问题,就是如果把A.com 重定向到了bbs.A.com了, 外链怎么保持呢. 原来的外链都是 http://a.com/abc/def.php 这种形式的.

这个时候想到的就是有条件的重定向,  当用户直接访问A.com的时候, 重定向到bbs.A.con.  如果用户是通过这种形式 http://a.com/abc/def.php 访问的网站,  则不重定向, 让它依然有效.

思路就是检测请求的uri, 如果没有uri 就直接重定向. 如果有uri 则不重定向.

这在php中很容易实现. 但是为了执行效率, 我决定改写.htaccess文件来实现.

在.htaccess 文件的最开始, 插入一下代码


RewriteCond %{REQUEST_URI} =/     #直接输入a.com访问的话,uri不是空,而是斜线:'/'
RewriteCond %{QUERY_STRING} ^$    #正则表达式 ^和$ 放在一起,表示空,之所以加上Querystring,是防止用户这样访问: a.com/?id=124
RewriteRule .* http://bbs.a.com [R=301,L] #重定向到新网址


搞定.

希望大家多多交流.

 


Comments

Content