也说301重定向

This item was filled under [ 叁-技术点滴, 陆-原创归档 ]

在前面一篇《关于blog的一些想法》里曾经提到,想把blog从二级目录搬到根目录下,于是今天就动手了,在些先多谢 MR.BIE,经过指导终于把这个事情弄好,把blog从二级目录放到了根目录里了,大家现在看到的就是已经调整后的效果。

现在说说什么是301,以及怎样才能301吧,

以下内容来自大MR.BIE,这里可到原文

第一步、更换域名,第二步、完美301转向,第三步、去Google管理员工具设置首选域名,第四步、301重定向的注意事项,下面分开详细介绍:

第一步、更换域名

为了实现后面的完美301转移,需要建立一个新站,即不更改原站old.com,建立新站new.com。

1.备份导入 备份导出A站数据库,并导入到新站数据库中。建议使用PHPMyAdmin进行数据库备份与导入工作。

2.更换域名 做完第一步工作之后,此时新站尚不能正常访问,还需更改数据库中的域名地址。

方法一:在导入备份的数据库前使用文本编辑器查找替换原域名为新域名,此方法的好处是一步到位,但缺点是数据库乱码,不易编辑修改。

方法二:直接在数据库中进行SQL语句查询。重点推荐此方法,简单快捷。使用查询语句,只需打开数据库,使用下列查询语句即可完成地址及文章内链的修改。(注意,可能复制后半角的’变成全角的‘,实际操作过程中请使用半角’)

UPDATE 表名_options SET option_value = replace(option_value, ‘旧域名(不带/)’, ‘新域名(不带/)’) WHERE option_name = ‘home’ OR option_name = ’siteurl’;

UPDATE 表名_posts SET guid = replace(guid, ‘旧域名(不带/)’, ‘新域名(不带/)’);

UPDATE 表名_posts SET post_content = replace(post_content, ‘旧域名(不带/)’, ‘新域名(不带/)’);

然后直接使用/wp-admin/登录后台,打开设置、常规,如果发现这里还是旧域名,把它该正过来,至此,域名更换完成,可以正常访问新站了。

第二步、完美301转向

假设我们原来的域名为old.com,新鲜出炉爱不释手的域名为new.com,想让所有途径过来的old.com都定向到new.com,那么我们在根目录htaccess中加入如下

RewriteEngine On
RewriteCond %{HTTP_HOST} ^old.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.old.com [NC]
RewriteRule ^(.*)$ http://www.new.com/$1 [L,R=301]

可能有的同学会问,前面的工作也可以在原站A上完成,但为什么还要建立新站B呢?这就完美转移的关键了,其实只要了解WP的都会发现,WP只能 绑定一个地址,如果你用的是诸如mrbie.com顶域名作为地址,那就不能用www.mrbie.com这个子域作地址,反之亦然。而空间绑定另一个地 址的话,只有首页绑定,内页永久链接是不变的。因此,我们要建立新站,旧站只是提供一个301过渡,这样就形成了一个WP的301完美转移。 前面的更换域名做完之后,操作就相当简单。只需把原站的”.htaccess”文件用文本编辑器打开更改为以下即可(适用于Linux主 机,Windows主机可用其他方式转向)。

做完之后可以301转向测试看一下结果。

第三步、去Google管理员工具设置首选域名

Google的Sitemaps是一个专门为站长设计的工具,关于Sitempas文件的制作,可以使用wordpress插件Google XML Sitemaps来自动或者手动生成,如果是其他程序可以使用在线生成,比如http://www.xml-sitemaps.com/这些网站。

登录Google Sitemaps后,在诊断〉首选域部分有设置。

在互联网的网址规范里面,www.mrbie.com和 mrbie.com是完全不同的两个主机名字,代表了两个网站,可是有些网站的有www和没有www开头的网址其实是指向了相同的内容,这种情况,会被搜 索引擎认为是重复内容而受到处罚,而首选域的功能就是让你可以设定,有www和没有www开头的主机其实是相同的主机,而且用你所习惯的,所首选的网址形 式表达出来。

当然你可以不设置,默认的设置就是两者是不同的网站。

在没有首选域这个设置之前,常规的做法是,把www.mrbie.com指向网站空间,而mrbie.com用301重定向到www.mrbie.com

现在我只要在GoogleSitemaps里设置首选域为www.mrbie.com就可以了。

这个设置只对Google的搜索引擎有作用,那么如果你想对其他的搜索也能做到相同的功效,就必须使用301重定向了。代码如下:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mrbie.com [NC]
RewriteRule ^(.*)$ http://www.mrbie.com/$1 [L,R=301]

第四步、301重定向的注意事项:

1)要避免301重定向后,新页面,或者最终页面是返回的404错误码。

2)301重定向,之前的页面和新页面,内容最好一致,如果不能做到的话,也要尽可能内容相关。

3)301重定向,是用来重定向url的,而不是用来做流量重定向的,这个要非常小心,而且这也是301重定向的基本精神。

4)网站从一个网站迁移到新的域名,用301重定向。

5)放弃一个网站,又重写一个网站,要搬流量,最好不用用301重定向。我的建议是,原来的网站,除首页外,全部给出404错误,在页面上说明情况,并且给出一个链接,让用户自己点击后到达新网站。

6)不要用302重定向,这会让Google认为原来的页面url还有效。

我的转移过程基本上是参照上面的执行的,当成离不开MR.BIE的指导啊,呵呵,

只是在最后写重定向代码的时候出了一点点小问题,

最开始的时候用的是这个代码:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^a.com/blog [NC,OR]
RewriteCond %{HTTP_HOST} ^www.a.com/blog [NC]
RewriteRule ^(.*)$ http://www.a.comt/$1 [L,R=301]

结果发现从blog目录并不到直接跳转到a.com去,而是莫名其妙的到了一个文章页面了,于是MR.BIE亲自操刀,很轻松的搞定了:

原来把代码改成了这样:

RewriteEngine On
RewriteRule ^(.*)$  http://www.a.com/$1 [L,R=301]

嘿,人别看,效果还真明显,立马就好了,至于原因,这个说实话,我也不清楚啊,

先写这吧,如果你发现有没有定向好的地方,提醒提醒我吧…..

【咦,怎么没有相关文章呢?要不您随便看看吧......】

Popularity: 2,450 Views
Tagged with: [ , ]
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

21 Comments on “也说301重定向”

  • 6 八月, 2009, 17:10

    放在根目录 ,看URL就舒服

    [回 复]

  • 6 八月, 2009, 21:33

    这种文章一样要保存一份。不过已经有保存了,这个就算了,哈。

    [回 复]

  • 6 八月, 2009, 21:48

    这篇文章收藏了,上次我就是直接把目录换掉了,现在PR没了,555…

    [回 复]

  • 6 八月, 2009, 22:13

    这个教程是如此的详细,简直是NB!放在
    根目录下,大多数人似乎都这样做啊。。。

    [回 复]

  • 6 八月, 2009, 22:58

    俺的301用着呢 在。呵呵

    [回 复]

  • 6 八月, 2009, 23:45

    @蛋王, 这个确实应该保存一份啊
    @平平, 怎么?你也用301???
    @365hope, 牛人写的教程当然NB了,哈哈
    @小明猪, 我就是怕出现这种情况,所以才咨询了n多牛人,才弄成现在这个样子的……
    @卡提拉, 这样看着是比原来舒服多了啊

    [回 复]

  • 7 八月, 2009, 8:34

    seo方面的东西不清楚

    [回 复]

  • 7 八月, 2009, 18:12

    辛苦了,还在考虑换域名……

    [回 复]

  • 7 八月, 2009, 22:27

    说的好详细啊,按照你说的弄弄看

    [回 复]

  • 7 八月, 2009, 22:48

    文章介绍的很详细,收藏了

    [回 复]

  • 8 八月, 2009, 0:42

    先收藏着,以后用上就方便了

    [回 复]

  • 8 八月, 2009, 10:59

    来这ad了,招收链接,哈哈!!

    新博客,很惨的。哈哈

    [回 复]

  • 8 八月, 2009, 12:54

    总结的太好了,我会用的上的!

    [回 复]

  • 8 八月, 2009, 17:40

    太复杂了,幸亏当初没有放在二级目录

    [回 复]

  • 8 八月, 2009, 18:22

    哦 已经解决了啊。呵呵 我还在前一篇文章里留言了。

    [回 复]

    奋飞 回复:

    @chanthon, 呵呵,已经解决了,谢谢了

    [回 复]

  • 9 八月, 2009, 13:17

    好麻烦啊!

    [回 复]

    奋飞 回复:

    @很黄很暴力de生活,
    呵呵,还好,还好

    [回 复]

  • 9 八月, 2009, 21:55

    小子,想法挺多的!

    [回 复]

  • 8 九月, 2009, 21:28

    博客换了域名,pr被清0了

    [回 复]

  • 8 十月, 2009, 18:53

    301定向不就是一个重定向语句么?我的就是这么整的,从一个域名直接重定向到另外一个域名。

    [回 复]

Leave a Comment

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。