修改 .htaccess 实现 301 重定向

首写还得感谢超人给我提的意见,他说用 wange.im 和 life-studio.cn 打开我的网站是没有经过重定向的,也就是说,这相当于两个网站,对于 SEO 很不利。也因此我终于知道为什么百度收录了我一千多页呢,原来不是百度比 Google 更偏爱我的网站,而是百度太笨,完全把这两个地址分开收录了,严重影响排名。不过也不能完全怪百度,是我没有给它指一条明路。

最后在网上找到这么一个方法,可以通过 .htaccess 来实现 301 重定向,原文如下:

出于 SEO、PR 值传递、网址转换的目的,在网站初建和网站迁移时我们都需要使用 301 重定向,通常包括域名对域名,目录对目录和一个独立网址对另一个独立网址的重定向。在虚拟主机上作 301 重定向,最常用的方法有2种:

1.直接编辑 .htaccess。

2.用 cPanel 设定。

实质二者都是修改文件 .htaccess,只是前者手工编辑,后者是由 cPanel 完成。用 cPanel 操作相当简单,登陆你的 cPanel–>Domain–>Redirects,选择相应的选项即可完成设置,这里暂不讨论。下面讲一下直接编辑 .htaccess 的方法。

注意:在设置 301 重定向之前务必备份相应目录下的.htaccess文件。

1.重定向domain.com到www.domain.com

这种重定向旨在使域名唯一,是网站SEO必须要做的,后面重定向www.domain.com到domain.com也是出于同样的原因,只是形式不同。打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改)

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

2.重定向www.domain.com到domain.com

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

3.重定向olddomain.com到www.newdomain.com

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

4.重定向olddomain.com to newdomain.com

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

5.重定向domain.com/file/file.php 到 otherdomain.com/otherfile/other.php

RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^file/file.php$ http://www.otherdomain.com/otherfile/other.php [R=301,L]

,,

相关的文章
  1. Pingback: 使用.htaccess来实现301重定向(旧域名指向新域名) | MediaTense

  2. Pingback: 域名更改为idota.me以及换空间又换域名的301重定向问题 | 捣塔blog

  3. Pingback: “灵魂独奏曲”合并入“邪罗刹的菠萝阁” | 邪罗刹的菠萝阁

  4. # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress
    这是我的.htaccess文件,我每次输入zhubajie.name的时候都自动跳转到www.zhubajie.name是怎么回事呢?我从来都没有设计过呀。但是百度依然对这两个域名分别收录这又是为什么呢?万戈老大一定要帮我研究一下哈。

    • 会不会是你的域名里设置过转向呢?有的域名管理中也有这个功能的
      还有,就算你做了301重定向,百度也会分开收录的,因为这就是百度!

      • 我的网站改版了,把原来的内容都删除了,换了新的,不过.htaccess文件还是原来的,结果发现再输入zhubajie.name的时候不跳转到www.zhubajie.name了,后来照你的改了一个,跳转了。

  5. 万戈,我想问一下。如果我域名和主机都换了,该怎么做实现301重定向?原站的内容要不要删掉?用于301重定向的.htaccess文件放在哪里?谢谢了。

  6. 我刚换了域名,能给我看下你的.htaccess里怎么写的吗?直接看源码比较好一点,网上流传的代码不一定正确,麻烦你了

  7. Pingback: 转:修改 .htaccess 实现 301 重定向 » 稷下学宫

  8. 唉 两个网站就两个网站吧,对这些没什么兴趣,只简单记录些东西.
    我的到现在还是对SE很不友好的两个域名.

  9. 我的新域名是qinfei.info,旧域名是www.dustbbs.cn,我现在只想用qinfei.info这一个域名,到底要怎么设啊,你那5条我都看晕了。
    麻烦你给看看要怎么设啊。

  10. 比如说我的博客是xingzou.org我有两个域名abc.com和abc.net都是指向xingzou.org的如何实现输入其他域名都转到www.xingzou.org?可以重复写??

    • 恩,我也看到过这个插件,不过研究了下,这个插件才几行代码,感觉用插件有点浪费了,所以就用了.htaccess

  11. 非常全面,不过我有个问题啊
    重定向olddomain.com 到 newdomain.com,是在老域名的.htaccess里面写,还是在新域名里面。如果老域名已经转到别人手里怎么办?