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

举个例子,  本来有个 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 文件的最开始, 插入一下代码

RewriteEngine On

#这一句是判断Uri,  如果uri == /, 这里注意, 但用户直接输入a.com访问的时候, uri不是空, 而是 /

RewriteCond   %{REQUEST_URI}   =/

#这一句是重定向 到新的域名.  这里有三个参数, 第一个参数是当前的匹配uri,没有用,  第二个参数是要重定向的url, 注意直接写url,不用加引号,  第三个参数是中括号括起来的一些标记,  每个标记用逗号隔开, 第一个标记是 R=301,指定301永久重定向, 第二个参数是 L, 表示rewrite 规则到此结束, 不在往后解释.

RewriteRule    .*    http://bbs.a.com     [R=301,L]

搞定.

希望大家多多交流.

 
byNeil
byNeil.com

原文来自 All by Neilpost 通过.htaccess 的rewriterule 新旧网站的无缝转换,不丢权重 转载请注明出处。本站保留一切权力

原文地址:https://www.cnblogs.com/shuidao/p/3060100.html