换域名后 WordPress 重定向

0 Share

换域名后 WordPress 重定向

这个重定向问题纠结了好久。我在原来的站点基础上帮定了新米 lorz.me,想以此域名为主,因此需要将原域名下的所有链接都平滑的重定向到新域名。

这个重定向问题纠结了好久。我在原来的站点基础上绑定了新米 lorz.me,想以此域名为主,因此需要将原域名下的所有链接都平滑的重定向到新域名。

情况、方法

WordPress 根目录下的  .htaccess 默认内容如下:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] </IfModule>
# END WordPress

一般来说,只需要把下面两句加上即可:

RewriteCond %{HTTP_HOST} ^old.cn [NC] RewriteRule ^(.*) http://lorz.me/$1 [L,R=301]

第一行的意思是判断下当前请求域名是否为 old.cn ,也可写为 !^lorz.me(意即“不是 lorz.me”,适合有多个域名时用这句判断),NC 是不分大小写的意思——如果不加这行判断会陷入循环重定向;第二行是从当前请求 URL 中取出 old.cn 后面那段加在 lorz.me 上,L 意思是循环结束,R=301 代表 301 永久重定向。我理解没错误吧,毕竟是换过域名的人,*$#%&@#$。

困惑、转机

但是,问题在于,修改 .htaccess 之后,old.cn 上面所有的页面都被跳转到 lorz.me 的首页上了。无奈差点把 .htaccess 的各种用途都了解个遍的时候,看到 FDS‘s Blog (个人觉得应该是 FDS' Blog ,S‘s 看着别扭- -|)提到说,把上面两句写在了 WordPress 默认那几句里面。我是放在 # END WordPress后面的,汗。最后修改如下:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old.cn [NC] RewriteRule ^(.*) http://lorz.me/$1 [L,R=301] RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] </IfModule>
# END WordPress

之后解决。不过写在这里可能会出现被 WordPress 修改回来的情况,建议写成:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old.cn [NC] RewriteRule ^(.*) http://lorz.me/$1 [L,R=301] </IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] </IfModule>

鸣谢

感谢下萝卜,虽然一直误以为我要设置错误页面。我倒是想来着,可是404被劫持了。

貌似最近看见好几个博客换米了,比方说 Xiaorsz大猫……

Comments ( 11 )

  1. ReplybigCat
    那个.htaccess里面方法是用正则表达式替换老米为新米哈 .me很好玩吧 或者你可以直接俩米指向一空间,在wp后台设置域名,自动跳转的,不过可能是302跳转,没测试...如果是301就完美了
    • Reply卢达
      我也记得 WordPress 自己可以跳的,不过这次死活不跳。话说我这 .me 貌似买贵了?貌似在 GoDaddy 空间域名一起买,最小支出 8 美刀左右就够了……
      • ReplybigCat
        - - 我买的时候20刀,现在15刀 不要买godaddy空间 不撞墙你来问我
      • Reply猪小猪
        现在和空间一起买.me也便宜么?我用的是gd主机...不过.me要一下买俩年吧
        • Reply卢达
          的确是,我后来试过生成订单。.me 不要求两年。
  2. 启用新域名bokelife.com - 寂寞部屋
    [...] 接下来就是使用传说中的301跳转,据说这样可以将PR及收录转到新域名来,不知是否,总之做了再说。经过Google了一番之后,找到篇文章不错,是Lorz的《换域名后 WordPress 重定向》,于是乎照着修改了.htaccess这个文件后,一切完美跳转。.htaccess中添加到内容如下: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^jtsj.net.cn [NC] RewriteRule ^(.*) http://www.bokelife.com/$1 [L,R=301] </IfModule> # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> [...]
  3. Replyoran
    谢谢了,今天换域名就靠这个了。
  4. Reply摩摩诘
    很有用,谢谢!!
  5. Reply向晚
    还没折腾成功,汗。
  6. Reply长微博
    博主是linux主机吧?有无win的301方法?
    • Reply卢达
      Apache 在 Win 上也是这么写配置文件的吧,如果不支持 .htaccess 文件,那你可以在 Apache 的配置文件里面写。

Leave a reply

Your email address will not be published.