WordPress换域名的完美301跳转方法

经常来我这的朋友都知道我被逼无奈搬家无数,也因为头脑发烧换了3次域名(第一次用 blog.zwwooooo.com,第二次是 zwwooooo.com,第三次是真的换了 zww.me)。

搬家倒是很容易,就是换域名的话要考虑搜索引擎能否快速收录新网址,这就要给原域名作 301 转向了,最好保留原网站数据不动一个月以上。

转向了几次也就懂得方法了,当然都是 Google 来的!下面直接列出方法当自己的笔记好了,需要的朋友也可以直接参考、Copy。

一、Linux 主机,这个最简单,修改 .htaccess(方法参考自《第七日》的这篇文章

把 .htaccess 文件 WordPress 部分修改成下面样子:

# BEGIN WordPress
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
rewritecond %{http_host} ^www.old.com [nc]
rewriterule ^(.*)$ http://www.new.com/$1 [L,R=301]
</IfModule>
# END WordPress

注意:www.old.com 替换为你的老域名,www.new.com 替换为你的新域名

2009.9.13 Update:有更简单的方法——来自博译论的{.htaccess生成器}

二、Windows 主机,可以用 php 跳转(方法来自哪里忘了,那就是来自互联网了)

修改 wordpress 根目录下的 wp-blog-header.php ,并在文件开头 <?php 之后加入以下代码:

if (strtolower($_SERVER['SERVER_NAME'])!='zww.me')
{
$URIRedirect=$_SERVER['REQUEST_URI'];
if(strtolower($URIRedirect)=="/index.php")
{
$URIRedirect="/";
}
header('HTTP/1.1 301 Moved Permanently');
header('Location:https://zww.me'.$URIRedirect);
exit();
}

注意:把里面的两个 zww.me 修改成你的新域名

——————————————————————————

简单吧,会 Copy 就会了,我也是 Copy 的,嘿嘿。

zww
or
oooo

“WordPress换域名的完美301跳转方法”有118条评论

  1. Ly says:

    哈哈,偶尔发现用GoogleChrome看你的博客才真的能看出细节美来,比如右上角的公告,和文章题目。

    是不是me域名不用www.miibeian.gov.cn就可以用呀?不是很清楚,特意请教

    1. zwwooooo says:

      右上角公告是每种浏览器都能看到的。至于文章题目就是要支持css3的浏览器才有效果(如chrome、ff3.5)

      不管是什么后缀的域名如果使用国内主机都要备案,我的还在等待,这两天应该就能拿到了

  2. DA面板可以直接设301……

    我的PR就是这样继承过来的……

    话说……我也在策划换域名了T T :roll:

    1. zwwooooo says:

      很多DA面板都是支持.htaccess的,有些人没有进入后台的权限就不得不用php了

  3. Leo.N says:

    不错,我最近正计划修改永久链接的格式。。。用这个方法应该行。。。

    1. zwwooooo says:

      永久链接可以用一个插件保留原来的链接有效,这样等新连接地址收录的差不多时才撤

  4. Rui says:

    我在观望好的空间商再做搬家事宜。。。

    1. zwwooooo says:

      祝你找到好的空间。

  5. ifu25 says:

    这个是所有页面都能重定向吗?程序我还得加把劲学习一下。

    1. zwwooooo says:

      嗯,所有页面

  6. 启用新域名imyan.org,完美的301重定向 | 小棒打鼓 says:
  7. Vicia says:

    :oops: 按照这里面说的,已经弄好了。

    1. zwwooooo says:

      哈,原来我这文章还很有用嘛

  8. 在CN整顿之前注册的CN域名,当时还觉得幸运呢,现在越来越不安了,所以这两天打算换国际米了。
    文章很有用,要参考一下。设置好301重定向过段时间后还需要撤掉重定向吗?刚接触这类东西,所以一点不懂 :???:

    1. zwwooooo says:

      @设&计是空 重定向的目的是为了搜索引擎更快的收录你的新域名,大概1~2个月后可以撤掉,最好保留原站点域名和内容半个月到一个月

    2. @zwwooooo 谢谢,那么撤销是如何操作的呢?我是要继续使用原来站点的数据和空间的。

    3. zwwooooo says:

      @设&计是空 那就只做跳转啊,以后不跳转了就把跳转的代码删除就可以了,简单点就是备份现在的.htaccess,然后修改,以后不做跳转就把备份的.htaccess覆盖修改过的。

    4. @zwwooooo 哦,明白了,非常感谢~
      顺便说下喜欢你的空间,简洁!
      @某人点上去有个框显示出来的是怎么实现的?

    5. zwwooooo says:

      @设&计是空 用 jQuery 实现的

    6. @zwwooooo ok,刚刚换好域名,做好重定向,非常谢谢啦~

    7. @设&计是空 喔~发现错误了,主页会跳转了,文章打开都是404了

    8. zwwooooo says:

      @设&计是空 因为只是换域名,所以你不要修改wp所在目录的.htaccess,你把你的旧域名指向一个文件夹,然后再此文件夹加一个.htaccess,内容如下:

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

      注:
      olddomain.com为旧域名
      http://www.newdomain.com/为新域名

    9. @zwwooooo 感谢你这么详细的为我解答,但是我还是不懂(从来没接触过这个也没学过相关知识)。把旧域名指向一个文件夹式怎么做的,我看到旧域名有个文件夹的确是在的~ :???:

    10. @设&计是空 博主,问题解决了,我是将你文中那段代码换成:
      RewriteEngine On
      RewriteBase /
      RewriteCond %{HTTP_HOST} ^www.old.cn [NC]
      RewriteRule ^(.*)$ http://www.new.com/$1 [R=301,L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
      # BEGIN WordPress

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

      # END WordPress

    11. @设&计是空 额~~有尖括号的显示不出。好了,楼被我搭的够高了,哈哈~再次感谢~

    12. YesCola says:

      @zwwooooo zww应该参考设计星空留下的评论,他那个是可以301并且不会影响伪静态。而你文中的代码很多人估计都会直接复制去替换掉默认的.htaccess。但如果设置过伪静态的固定链接就会出现404。

    13. YesCola says:

      @设&计是空
      谢谢! 参考你的代码成功搞定~~

    14. zwwooooo says:

      @YesCola
      其实我写的是老玉米那里的调整,应该是这样,下面的我没测试:

      # BEGIN WordPress
      <IfModule mod_rewrite.c>
      Options +FollowSymLinks
      RewriteEngine on
      rewritecond %{http_host} ^www.old.com [nc]
      rewriterule ^(.*)$ http://www.new.com/$1 [L,R=301]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
      </IfModule>
      # END WordPress
  9. Fantasy says:

    哈哈,修改了,过段时间看看是否有效~

    1. zwwooooo says:

      @Fantasy 这样能加快搜索引擎收录文章

  10. PSJay says:

    不知道为什么,按照博主的方法改掉.htaccess文件之后,用旧域名访问的话会跳转到 newdomain.com/public_html 下,然后就404错误了。。。请博主帮帮忙。

    1. zwwooooo says:

      @PSJay 应该没问题,我试过,或者你用我文章里面给出的工具

  11. KARONL says:

    我也准备要换域名,但我找不到.htaccess之前看到,现在找就找不到了啊。

    1. zwwooooo says:

      @KARONL
      一般根目录有,有些ftp软件看不到

  12. 浩子 says:

    如果我从www.haozer.com换到haozer.com需要重定向不呢?

    1. zwwooooo says:

      @浩子
      一般不用重定向,你把www子域名指向同一主机ip,一般主机都设置好www会转向主域名

  13. 娃仔 says:

    我换了域名,win主机做了php跳转,可是跳转结果不理想,例如 http://www.xxx.com/cq45 点击这个链接会跳转到 xxx.com/index.php/cq45 请有什么方法可以去掉index.php 求解!

    1. zwwooooo says:

      @娃仔
      去wp后台的“设置”-》"固定链接"哪里去掉index.php,不过不建议用win主机,如果你要玩wp的话。

  14. heson says:

    刚刚换域名 哈哈`````

    1. zwwooooo says:

      @heson
      yyheson,yy和son,哈,开个玩笑

  15. [...] 方法来自:WordPress换域名的完美301跳转方法 [...]

  16. 我想换域名,但是旧域名的文章链接会转到新域名的文章么?

    1. zwwooooo says:

      @丑男ヽ賤到極致是自然
      所以要设置301跳转。

  17. [...] yesocla.com 目前仍能够访问是因为做了301重定向,zww的教程在这里 [...]

  18. Options +FollowSymLinks
    RewriteEngine on
    rewritecond %{http_host} ^blog.willin.me [nc]
    rewriterule ^(.*)$ http://willin.me/blog/$1 [L,R=301]

    替代原有的就可以了吗?

    1. zwwooooo says:

      @Willin Wang
      目录的没试过,按道理如此。

  19. 如上.

  20. 换用新域名-xiazi.info | 虾子酱 says:

    [...] yesocla.com 目前仍能够访问是因为做了301重定向,zww的教程在这里,顺便说一下,如果是WP里设置过伪静态的,不能完全复制zww提供的代码,否则会404。而应该使用这个。 [...]

发表评论

昵称 *

网址

B em del U Link Code Quote