话说小的站点www.jubailan.com/tang样子的域名比tang.jubailan.com的域名更有利,因为搜索引擎比较关注网站内容的丰富程度,tang.jubailan.com会使网站变得分散。可是~~重点出来了。。。
原来的网站主机不支持.htaccess的url重写,就是说我要把博客放在其它主机上,所以使用新的域名tang.jubailan.com,废话完毕,进入正题。顺便提下win主机下利用一下404页面也可以让wordpress实现诸如www.xxx.com/119样子的自定义固定链接。
我的wordpress搬迁步骤:
1. 让虚拟主机提供商帮我把原来的博客数据打包,我的博客文件放在根目录的一个叫做tang的目录下,所以他们给我打包出了一个“tang.rar”。当然你直接下载不打包也可以只是那样会比较慢,然后当然是把这些文件上传到新的空间里。还有因为要换域名就是做域名解析这个就不必多说了。
2. 用phpmyadmin把我的mysql的数据导出来。具体登陆phpmyadmin,进入相应数据库,选择“导出”选项卡,选择要导出的wordpress的表,我的2.8没什么插件总共十个表。其它的默认就好(类型选择SQL),当然下面还要勾选“另存为文件”要不然结果会直接在浏览器中显示。最好还选上“gzip 压缩 ”或者“zip压缩”,事实证明那样下载的文件会变小很多。
在这里会存在一些问题,比如导出的那些诸如“完整插入”“扩展插入”的乱七八糟的选项,
完整插入指的是:
insert into "usertable" ("user","passpword") values ("jubailan","pass");
相对的,不完整插入是:
insert into "usertable" values ("jubailan","pass");
扩展插入:
INSERT INTO "usertable" VALUES ("jubailan","pass"),("tang","pass2");
非扩展插入:
INSERT INTO "usertable" VALUES ("jubailan","pass");
INSERT INTO "usertable" VALUES ("tang","pass2");
… 就这么多了,其它的其实我也不懂O_O!,至少让大家觉得这个其实不是那么特别的重要除了一些在兼容性上的考虑。一个较为严重的问题是数据编码的不同带来的严重后果,我个人的事实表明登陆phpmyadmin时的语言选择决定导出的文件的编码。
起初我默认的“GB2312”就上了,然后导出的文件我再导进另外一台主机的phpmyadmin,后者我用的是UTF-8登陆,之后我打开新的站点是无数个”???”。后来尝试使用utf-8登陆导出,然后用utf-8登陆导入,成功。
使用GB2312登陆phpmyadmin导出的文件编码如下(在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。):

3. 导入的数据处理适应新的域名。导出的数据是不能直接用的,当然直接用的话不是不能工作但是日志中的图片地址是原来的域名地址所以会不显示,而且要在wp-config.php文件中加入下面一段,否则是无法登陆后台的。
define('WP_SITEURL', 'http://tang.jubailan.com');
define('WP_HOME', 'http://tang.jubailan.com');
其中的地址按照实际情况自行填写,分别对应网站的安装地址和显示地址。wp-config.php优先级比数据库高,当然也可以搜索数据库修改,事实上未来保证图片正常显示最终还是只能修改数据库数据,wordpress在图片上不知道为何使用绝对路径。。。
导出的数据先用Uedit打开,查找替换所有原来的网站安装地址,然后再替换所有的网站显示地址(极有可能两者是一样的),之后导入这个文件。如果这两个地址本来是一样的但是你换了空间域名之后打算把博客文件放在某个子目录下index.php放在根目录下,那么也先替换完成之后待安装正常了再在后台更改并做相应处理。
4. 后续工程,导入博客数据之后基本博客就可以使用了,在这个时候我打算写下这篇日志犒赏下,结果发现图片无法上传,上传显示叉叉包,linux权限问题或者后台上传目录设置问题。在后台的“杂项”设置里面修改默认上传路径为“wp-content/uploads”,并且给予这个目录(uploads)777的权限,我是给了这么多权限,有人说只766或者755就可以了,可是我的显示还是不正常就干脆全给了。
ps:我把固定链接做成了http://tang.jubailan.com/254的样子,有人喜欢最后放.html,愚以为那样会误导观众以为这真的是一个静态页面并且那样网址显得更长而且对搜索引擎优化也没更多好处。。我看豆瓣就我这样的。
ps cs:不得安宁!虽然自己的站小到不行,就那样一点点但是还是被google收录了些许页面,虽然说原来的站扔不足惜但是如果能301到新站来也不是件坏事。
想起301,这段代码肯定少不了:
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://tang.jubailan.com");
第一句表示这是一个301重定向,第二句就进行实质性的转向操作,如果省略第一句默认进行的转向是临时302重定向。假如在旧网站index.php中加上这句就不会出现404错误了的,但是google管理员工具的网站迁移帮助说这样不利良好的用户体验,唉为了上帝我们再折腾下吧。
可以在旧网站上使用.htaccess进行url重写,把原来的网址全都转向到新网站对应的页面上来,我原来的主机不支持htaccess(要不然我也不必为了个固定链接费劲换个空间),不过这段代码大概对你有所启迪:
# BEGIN WordPress
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
rewritecond %{http_host} ^www.jubailan.com[nc]
rewriterule ^(.*)$ http://tang.jubailan.com/$1 [L,R=301]
</IfModule>
# END
rewritecond 是一个判断语句判断后面两个语句是否匹配,如果匹配则执行下面的rewriterule,即把该站(www.jubailan.com)所有的网址全部转向http://tang.jubailan.com,例如http://www.jubailan.com/11会转到http://tang.jubailan.com/11。“[nc]” 表示忽略大小写,R=301大概告诉搜索引擎这是永久重定向。
因为不支持我只能使用php实现,简单的说就是在模板的“header.php”的开头写上这些:
if (strtolower($_SERVER["SERVER_NAME"])!="tang.jubailan.com")
{
$URIRedirect=$_SERVER["REQUEST_URI"];
$URIRedirect=str_replace("/tang/index.php/archives","",$URIRedirect);
$URIRedirect=str_replace("/tang","",$URIRedirect);
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://tang.jubailan.com".$URIRedirect);
exit();
}
因为我本来的博客文章的地址是这个样子的:http://www.jubailan.com/tang/index.php/archives/11,现在的是:http://tang.jubailan.com/11,我只是通过php简单的获取了浏览器发送的地址,然后将/tang/index.php/archives替换为空并且附到http://tang.jubailan.com后形成了新的网页地址,把不符合第一条替换规则的网址的/tang替换掉附到http://tang.jubailan.com后面基本上可以使我的每个目录地址能正常访问。每个人的情况不一样自己可以使用正则表达式替换实现自己的网址转向,具体参考php手册的“str_replace”或者“ereg_replace”函数。
rewritecond参考:http://hi.baidu.com/xmxtc/blog/item/5858ec955c716e43d1135ec2.html

站不错!!!
WordPress换空间换域名的详细方法:
http://www.hack0573.com/Website/3.html
你的博客长的无比十分非常像月光博客,哎~他知道了该恨死你了