首页 > 我的WordPress > WordPress 更换固定链接的方法
2013
04-02

WordPress 更换固定链接的方法

  北街在 2007 年下半年开始使用 WordPress 建立个人博客,当时随便买了域名,后来知道这样的域名利于 SEO。年底,北街博客进行了一次域名更换,正式使用ibeijie.cn。最近,又解决掉了一个大难题,就是给 WordPress 博客更换了固定链接。

  Wordpress 更换固定链接的原因是想将 /%postname% 更换为 /%postname%.html。改完之后,不幸的事情发生了,从谷歌和百度收录北街博客的文章链接点击进来,全部是本站的404错误页面。

  于是按照网上的教程尝试使用 Dean’s Permalinks Migration 或者 Permalinks Redirect 两款插件来实现旧页面到新链接之间的跳转。

  首先我使用的是 Dean’s Permalink Migration,安装激活全在 wordpress 后台即可执行。理论上说,按照我的情况,设置也应该十分简单:在 Permalinks Migration 设置 Old Permalink Structure 为 /%postname%,保持当前固定链接为 /%postname%/ 即可。但是如此设置之后,根本没有效果,仍然全部 404 错误页面。

  接下来尝试 Permalink Redirect,这个插件确实可以实现我想要的功能,但是配置较为复杂,如果编程水平一般的朋友,无法实现批量链接替换。

  最后,北街终于发现了一款可以进行301重定向的 Permalink Redirect 插件,作者是Scott Yang(插件主页)。与 Dean’s Permalinks Migration 不同的是,这款插件可把多个旧的固定链接形式,转向当前的固定链接。假如之前的固定链接设置多个并被收录后,这时这一点相当好用。

  其实这种情况也可以编辑 .httacess 文件来解决。作为 SEO,我们肯定推荐使用 301 跳转,当用户访问 domain1.com 时,自动引导用户进入新域名 domain2.com,可以通过程序或域名跳转实现301跳转,这样可以将旧域名 PR 传递到新域名。搜索了下解决方案,有说重新提交更改固定链接后的 sitemap,并等待 Google 的更新。但等待更新不知要等至何时,并且这段时间全是 404 的页面,据说会导致被 Google 降权的危险。于是就得使用传说中的301重定向。

  但是第一次更换域名 301 重定向失败了,老域名的文章没有办法转到新的域名上来。这次域名的更换还继续保留以前的文章和所有的链接,更改成新域名后所有的文章固定链接都发生了变化,虽然老站还在继续运行只是不再更新而已,为了不白白浪费以前的工作和流量,可以通过了 301 重定向,把老站的文章通通转到过来。301 重定向的作用:规范网址;排除了重复页面;增加网址权重。而且在 linux 主机下,通过修改根目录 .htaccess 文件就可以简单实现这个功能。

  在使用301重定向时需要有几个前提条件:
  1. 保持新旧两站文章固定链接一致,搬迁时最好使用 wp-dbmanager 插件进行备份和还原数据库;
  2. 旧域名和空间必须要继续运行一定时间,大概要有两三个月;
  3. 空间主机类型为 linux 主机;

  如果上面的条件都没有问题的话,打开旧空间跟目录的 .htaccess 文件,删除所有的语句,并加入保存以下语句:

1
2
3
4
5
6
7
8
# BEGIN WordPress
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
rewritecond %{http_host} ^www.your-old-domain.com [nc]
rewriterule ^(.*)$ <a href="http://www.your-new-domain.com/$1">http://www.your-new-domain.com/$1</a> [L,R=301]
&lt;/IfModule&gt;
# END WordPress

  .htaccess文件代码如下:

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^ibeijie.cn [nc]
rewriterule ^(.*)$ http://www.ibeijie.cn/$1 [r=301,nc]

  注释:如果用户访问http://ibeijie.cn/,则跳转至http://www.ibeijie.cn,且返回301状态码;当用户访问http://ibeijie.cn/post/301.html,则跳转至http://www.ibeijie.cn/post/301.html,并返回301状态码。

  通过这样301重定向不但平滑的过度了博客新老域名的更换,而且不会为带来很多的流量损失。

如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

  1. 是啊,换域名还是很麻烦的事情,搞不好就会导致自己的流量的流逝啊。

  2. @北街 我用的kloxo。里面有两个可以选择。一个是apache。一个就是ligghttd、lighttd占内存要少一些、、