LBS to WordPress2.1 完美攻略 -管理资料

管理资料 时间:2019-01-01 我要投稿
【www.unjs.com - 管理资料】

    刚刚发现,由于之前新网的DNS被黑,我临时更换了DNS解析服务器,而后来这件事情逐渐被我遗忘,导致各大结点似乎还Cache了老的DNS解析服务器,因此,时而解析到老的LBS,时而解析到新的WordPress,

LBS to WordPress2.1 完美攻略

。今天终于发现问题并解决了。现在应该“全球同步了”。看到许多朋友留言或发信件询问ASP系统到WordPress的转换,我想写一篇文章来与大家分享。我并不想按照传统的“攻略”的方法来记录第一部该干什么,第二部该干什么,而是按照“流水账”的形式记录,我一步一步是如何走过来的。这肯定会花费你更多的阅读时间,但我肯定这种“讲故事”的方式能让你更能透彻地体会到其中的乐趣。毕竟,我不是所谓的专栏作家。当然,最后会有一个概要总结

    Update @ 07.02.13

    不知道等全球DNS同步到这里还有多久,但我确实已经激动万分。这次转换的同时,公司也在与国内包括央视、湖南卫视、北京电视台在内的多家大型电视台合作,我非常荣幸能够参与平台相关部分的开发,但同时Blog的转换不得不等到我彻底腾出业余时间来进行。总的来说,转换还是非常顺利的,不但“优雅”地完成了站内连接的URL正则替换(即批量把我自己的文章中对自己网站内部连接地址按照WP的格式重写),而且也设计了一套属于自己的WP皮肤(当然,基于huddletogether的架构,我懒得自己写一堆DOM了)命名为“The Enhancing Spring (TES) ”。我把Blog的标题换成了“姿态永恒”,也算是表明了自己对这个Blog的态度将更加认真、积极,保证每一篇文章内容的真实、充实和质量。

    Update @ 07.02.09

    仔细看看这篇文章,就知道为什么我迟迟没有转换了。如今数据库、内部链接正则已经全部搞定,CSS也基本搞定。预计下周一就能正视上线了(需要部署、调试)。

    这次转换得到了各界朋友的帮助,也受益匪浅,转换的具体细节和心得我也全部公布在后,转换内容除了Zola的传统转换外,我修补了老米甲的tag补丁和html编辑补丁两个老大难问题。

    Update @ 07.01.23

    One Jump从去年9月份到今年,似乎我显得有些扭捏。其实不然,去年9月到现在,我从对DIV+CSS、JS、PHP+Mysql一无所知的只懂Flash里面几个简单function的小菜鸟,变成了一只老鸟。已经很不容易了。呃……WordPress的结构由于我本身特别不习惯,所以一直不敢轻举妄动,哪怕我把database都搞定了,还有两个大难题:1、UI(CSS);2、URL Rewrite(之前的残留链接统统要过来)

    今天在yskin的帮助下,找到了一个很好的东西:K2皮肤。我想不久我的CSS也可以准备Ready了。

    以下是数据库转换心得:@07.01.06

    去年9月份就转好过数据库,但一直没有时间研究具体的问题、隐患。今天突然发现SiC更新了日志,追加了关于LBS2.0的一些消息,纵然SiC的原话还是“遥遥无期”。我仍然觉得有些许伤感。哪怕LBS只是SiC当年自己的玩物,但对我来说,这套LBS系统我太熟悉太熟悉了。使用了近两年,而且为我自己的系统做了太多的改进、优化。

    “舍不得,舍不得,有舍才有得”……祝福SiC和他的LBS,我仍然在努力想办法把老米甲提供的Tags挽救回来。所以近期肯定不可能看到我的新WordPress Blog上线。怎么说呢,有一些PageRank我仍然割舍不下。

    OK,用http://www.neato.co.nz/ultimate-tag-warrior/ 插件,发现新建立了三个tags表,估计有希望把tags拿下~

    OK.2007年1月6号,我终于搞定了。

    在一米六二师兄的鼎力支援以及Zuola提供的转换工具的帮助下,我已经优雅地完成了数据库转换。下一步就是部署了。

    这里记录一下转换关键步骤以及可能遇到的麻烦。

   

    1、配置工作环境(PHP+Mysql),下载转换程序(点此下载)以及自己LBS的Access数据库。

    2、按照转换程序的说明配置Access数据库路径,并执行转换程序,输出SQL文件

    3、将SQL文件用Emeditor打开并以UTF-8格式保存

    4、不要用PHPMyAdmin导入。这个导入除了要麻烦你去修改该死的PHP配置文件之外,还可能对WordPress2.0.5以上的版本造成乱码Bug。

    5、使用mysql命令行,source调用你的SQL文件。注意路径要写成"e:/1.sql"这种语法。

    6、安装 UltimateTagWarrior 插件

    7、注意WP的UTW中的Tag表是否清空。

    8、使用我提供的tag转换程序生成所有的tags、映射关系表的sql文件

    9、重复步骤5

   

    补充:

    1、我的转换程序自己改了表前缀为"aw_",一般来说wordpress的为"wp_",如果你想用,请自行替换。

    2、原来sunu没有转用户表,我补充上去了,但由于无法较好的移植密码,因此一定要注意用户表必须一次转成,否则每次都回往后追加记录,没办法,因为我的SQL语句还停留在入门水平。我只转换了记录了Email的用户,由于用户量有1400,而且80%用户是非活跃用户,于是只能舍弃了。

    3、所有的URL Rewrite必须在激活Permalink的情况下进行。

    备忘:

    WP的UTW中的Tag表逻辑:

    与tags有关的三个新表

    1、post2tag 关系映射表

    2、tags 标签表

    3、tag_synonyms tags同义表(目前不是很清楚具体作用)

    LBS的Tags表逻辑:

    1、blog_Tags表

    2、blog_Article表

    tags映射已经完成!受不了VBS了,用JScript写的,源代码下载地址

    >_<很无奈发现UTW给postmeta表写了N多数据……似乎除了post2tag之外,这些数据也描述了tag与post之间的关系,我真不知道怎么回事,已经去官方论坛打探了……

    http://www.neato.co.nz/forum/

    附:针对wp2.1发表评论后Tag消失的补丁:

    http://moeffju.net/blog/2006/12/25/wordpress-21-alpha3-utw/

    patch:

    1、注意老的LBS的结构,尤其是Author的a标签的迁移

    2、评论的ajax检测继续做

    patch2:

    PR挽救方案-

    一、增加LBS重写模块,并设置httpd的AddType解析asp文档为php文档。

    冲定向模块主要针对id与tag两种requeryString做redirect,注意要做301重定向,详细内容见后。

    需要挽救的PR页面包扩(不分先后)

    1) /blog/article.asp -> About

    2) /blog/gbook.asp -> About

    3) /blog/user.asp -> About

    4) /blog/trackback.asp -> About

    5) /blog/default.asp -> Index

    6) /blog/defaultcv.asp -> Index

    6) /blog/defaultcc.asp -> Index

    7) /blog/tags.asp -> TagsClouds

    8) /blog/comment.asp -> RecentComments(Depend on Plug-ins)

    9) /blog/feed.asp -> FeedBurner -_-#~

    可以参考的映射PHP方式:

    在WordPress的Index.php下加入配置文件,建立一个配置数组,对于各种querystring都能映射到相应的URL,

管理资料

LBS to WordPress2.1 完美攻略》(https://www.unjs.com)。

    $lbsmapping = array(

    "id" => "archives/",

    "tag" => "tag/"

    );

    require_once("./lbs-wp.php");

    核心是lbs-wp.php

   

    foreach ($lbsmapping as $key => $value)

    {

    if(isset($_GET[$key]))

    {

    header("HTTP/1.1 301 Moved Permanently");

    header("Status: 301 Moved Permanently");

    header ("Location: http://".$_SERVER["HTTP_HOST"$]$. rtrim(dirname($_SERVER["PHP_SELF"]), "/\")."/".$value.$_GET[$key]);

    exit;

    }

    }

    ?>

    二、对于从LBS Export出来的SQL语句做批量URL替换,尤其对于原asp连接批量替换,减少站内PR损耗。推荐Emeditor。

    三、查询Google Webmaster Tools的 Diagnostic下的Web crawl下的出错内容并从SQL文件中把相应的站内连接直接干掉。

    “HTTP errors (4) | Not found (183) | URLs not followed (0) | URLs restricted by robots.txt (0) | URLs timed out (0) | Unreachable URLs (123)”

    四、最快速度在WP下面启动sitemap。

    五、有URI洁癖的话,考虑为postslug写入相应的值,恩……这个有点复杂……因为LBS的post都没有postslug :(

    六、外部连接只能Redirect,但是内部连接我们不能偷懒,针对内部连接的优化的EmEditor正则匹配,将内部连接全部转换为WP格式。

    1 - 针对id到archives的rewrite映射

    href=\"[^?]*?id=(d+)[^>]+>([^<]+)

    href=\"http://www.awflasher.com/blog/archives/1\" title=\"2\">2

    2 - 针对tag到UTW的rewrite映射

    href=\"[^?]*?tag=([^\]+)[^>]+>([^<]+)

    href=\"http://www.awflasher.com/blog/tag/1\" title=\"2\">2

    六、SEO Solutions by Google WebMaster Help Center - 针对SEO的解决方案

    My URL changed, so how can I get Google to index my new site?

    While we can"t manually change your URL in our search results, there are steps you can take to make sure your transition is smooth.

    First, you can redirect individuals to your new site. If your old URLs redirect to your new site using HTTP 301 (permanent) redirects, our crawler will discover the new URLs. For more information about 301 HTTP redirects, please see http://www.ietf.org/rfc/rfc2616.txt

    Google listings are based in part on our ability to find you from links on other sites. To preserve your rank, you"ll want to tell others who link to you of your change of address. One way to find a sampling of sites that link to yours is to perform. a link search. To learn how, please visit http://www.google.com/help/features.html#link. To obtain a comprehensive list of the links that point to your page, perform. a Google search on your URL. On the results page, select the "Find web pages that contain the term" link, and Google will provide you with webpages that mention your address.

    总结大致两点

    1、做301重定向,这个我已经提供了解决思路(可以参考PHP手册)

    2、改外部连接。其实内部连接同样重要,参见上面的正则匹配。

    最终总结

    下载原LBS系统的DataBase。

    安装WordPress2.0.7,可以在WordPress 下载

    对于使用了老米甲的插件的LBS用户,若原文发表过html贴,则不需要再进行UBB匹配,这一点要注意。

    使用上文提到的工具到处LBS的数据库为SQL文件,命名为maindb.sql,并确认编码为UTF8

    对maindb.sql进行批量正则替换,把SQL文件中所有的内部连接进行URL替换,确保最小链接损失。(内部连接就是你以前文章中对自己blog下各类资源,如日志和tag的引用)

    对于有Tags的用户(估计不多) ,按上文方式导出tag的SQL文件,命名为tag.sql,并确认编码为UTF8

    先用mySQL的命令行方式,用“source”语句导入maindb.sql文件。注意,不要用PhpMyAdmin的导入!

    安装UTW最新版,同第6步,导入tag.sql。

    按上文,进行301重定向架构。

    在本地全面检查blog系统,最好改一下host把原blog的Domain指向127.0.0.1,然后看看搜索引擎接入的重定向是否完美、优雅。

    下载2.1并升级

    来自 : http://www.awflasher.com/blog/archives/670

最新文章
推荐文章