如何把博客从WordPress迁移到Drupal
这个博客已经在Wordpress上呆了一年半,写的不多,但内容却杂乱不堪。当我把博客地址放到SNS,twitter或者邮件签名的时候,我都有点儿不自信:我为什么要把这个乱七八糟的博客作为自己的一个标识呢?
于是我下定决心要大力整顿它。但是我在WordPress的后台看着杂乱的url,不规则的tag我就慢慢失去信心。虽然说WordPress是很优秀的博客程序,但是我还是觉得驾驭它的能力有限,尤其当Drupal放在我面前的时候。一个对于自己几乎是黑盒,一个对于自己相对来说要透明一些。在这种情况下,我在测试环境实验了几次之后,决定将博客从WordPress迁移到Drupal。迁移过程还算顺利。
安装纯净的Drupal
为了不让其他的Drupal数据污染到你的迁移,有必要配置一个纯净的Drupal,然后完美变身为你的WordPress数据承载器。
使用wp2drupal来整体迁移数据库
wp2drupal能完美迁移WordPress到Drupal,包括日志、页面、分类、标签和用户。使用wp2drupal的前提是你希望迁移到的服务器能够访问原来WordPress所在服务器的数据库。我在第一次测试的时候就遇到过这样的问题。我在wp2drupal的setting页面填入了wordpress所在的服务器和数据库信息,但是试了好几次都没有成功。我本来以为是帐号或者密码输错了,去服务器上检查了好几次,但是都是一致的,最后查到原因是原来博客所在的主机数据库不允许localhost以外的host访问。我把数据库导进另外一个服务器就成功了。所以我建议做迁移的时候在本地做,把WordPress的数据库导在本地,然后直接在本地进行迁移,迁移好确认没有问题之后直接把本地配置好的Drupal部署到服务器上。
wp2drupal的使用很容易,输入各种参数就OK。但是貌似wp2drupal的path redirect有问题,说明里说把wp2drupal的目录设置为可写才可以用,但是我设置好了之后那个选项仍然是灰的。而且wp2drupal的path redirect是自己设计了一套redirect机制,我想倒不如直接用apache rewrite来设置,就没有使用wp2drupal的path redirect。
这样在不设置path redirect的前提下,迁移好之后的日志和页面没有任何的alias
使用path和apache rewrite设置alias
我这次设置alias有两层目的。第一是想把原来博客不统一的url格式统一起来,第二是把url设置到Drupal的别名系统里。
日志
我原来博客的日志url因为自己不明白改过很多次,导致现在在搜索引擎里的数据主要有两种,第一种是 Y/m/[article-title],比如"mengxy.net/2009/08/立秋",第二种是后来勤奋起来之后给每篇日志都另起了一个别名,比如"2010/01/luanke-unbelievable-holly/"。现在我的目标是把所有url都改成"url-alias"这种格式,不要日期,更干净。
那么我要做的是先把node path pattern设成[title-raw],把所有日志都改成标题的url,然后我再手动把自己改过的名字填上去,这样日志的标题就统一了。但是还有一个问题,我要把原来的url里的年和月去掉,这就需要做301定向了。
在根目录下的.htacess文件里填上下面的设置,
RewriteRule ^\d{4}/\d{2}/(.+)$ http://mengxy.net/$1 [R=301,L]注意,这句话要放在下面这句话的前面:
# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
这样日志的url就改好了。
标签
我原来的标签url格式是?tag=[tag-name],我现在想把它改成/[tag-name]。首先把现在的taxonomy设好url alias pattern:[catpath-raw],然后就要把原来的url做301定向了,在.htaccess里加下面这句:
RewriteCond %{QUERY_STRING} ^tag=(.*)$
RewriteRule ^$ <a href="http://mengxy.net/%1" title="http://mengxy.net/%1">http://mengxy.net/%1</a>? [R=301,L]归档页
图省事,我打算新的归档页就用Views附送的那个归档格式,archive/Y+m,也就是archive/200910。而原来的格式是/2009/10。好吧,继续rewrite url,代码如下:
RewriteRule ^(\d{4})/(\d{2})$ http://mengxy.net/archive/$1$2 [R=301,L]好了,这样折腾一番,原来WordPress的大部分常规链接就应该都迁移过来了。

Comments
欢迎来到Drupal的世界。
暂时还蜗居在wordpress折腾着,哈哈
Post new comment