新站第一篇,迁移drupal到wordpress

终于抛弃drupal投入到wordpress阵营了,哈哈。WP确实比DP好用,此处省去五百字…

以前一直在纠结怎么迁移,迁移后旧数据怎么办,有无平滑方案,想破脑袋都没主意,数次动过迁移念头,数次又被消灭。前几天DP通知可以从7.22升级到7.23,可无论如何都升级不成功,预计痛下决心进行迁移。

我现在后台用的是nginx+php-fpm模式,在同事的帮助下经过一番尝试后,终于搞定平滑升级方案:

1. 启用新站直接对外提供服务
2. 将原来的虚拟主机改名,比如把 imysql.com 改成现在的 dp.imysql.com:8080(由于我的server_name采用泛域名,因此这里需要使用非80端口)
3. 将所有对旧站的请求转发到 dp.imysql.com:8080 上

这样,就可以对外提供新站服务的同时,原有被搜索引擎收录的旧链接也能被正常打开。在nginx中,可参考如下配置:

#
# /sites/.* 、 /files/.* ... /image_captcha/.* 是drupal相关请求目录,在wordpress中不会出现,放心转发
# .*\.html 是我以前使用drupal时,url path的规则,以 .html 结尾,启用wordpress后,我的url path结尾改成 .shtml 了,所以也可以放心转发
# 上面规则设定完后,通过proxy_pass将符合特征的请求直接转发给 8080 端口了,也就是 dp.imysql.com:8080
#
location ~ ^/(sites\/.*|file\/.*|scripts\/.*|admin\/.*|node\/.*|user\/.*|image_captcha\/.*|.*\.html) {
    proxy_set_header        Host dp.imysql.com:8080;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass              http://127.0.0.1:8080$request_uri;
}

nginx我也不是非常熟悉,所以上面的正则表达看起来比较土,有什么比较好的麻烦大家告知,谢谢。

发表评论

电子邮件地址不会被公开。

Time limit is exhausted. Please reload CAPTCHA.