242009
客搬家之后不可避免会产生一大堆404错误,绝大部分原链接都失效了,不过好在动态网站系统的网址都是有规律的,因此把原来的网址重新定向也很容易,这里简单记录从Bo-Blog搬家到Wordpress的一些301重定向工作。PHP代码写得非常拙劣,各位看官见笑了,写出来为了将来要用到PHP的时候能找找自己以前写的例子。

1、RSS Feed:feed.php

对现代网民来说,RSS阅读器已经是看网页的必备工具,因此RSS种子的地址几乎是众多网址中最重要的一个。

插播不重要的通知:
1、本站的RSS地址已经更改为:http://yihui.name/cn/feed/,评论RSS为:http://yihui.name/cn/comments/feed/,请Google Reader中的读者即时更换。英文博客也类似,把cn改成en就可以了。
2、如果你懒得换也行,反正我已经重定向了。 :grin:

Bo-Blog的feed.php文件在不带参数的时候是博客正文的RSS,带参数go的时候可能是评论,也可能是分类目录的RSS,因此需要在WP根目录下建一个feed.php文件,里面对参数作简单的判断,把原来的RSS重定向到WP的RSS中。以下代码只是本博客的转向,具体怎么写要根据具体搬家结果分析。

我的博客搬家过程中,分类数字2不知为何被搬家程序略过了,因此当分类数字为2的时候特殊处理,否则从原来的go参数中提取分类数字,传给WP的cat参数。
<?php
header("HTTP/1.1 301 Moved Permanently");

if(!isset($_REQUEST["go"])){
	header("Location: http://$_SERVER[HTTP_HOST]/cn/?feed=rss2");
} else {
	$tmp = $_REQUEST["go"];
	if ($tmp == 'comment') {
		header("Location: http://$_SERVER[HTTP_HOST]/cn/?feed=comments-rss2");
	} else if (stripos($tmp, '_')) {
		$tmp = end(explode('_', $tmp));
		if ($tmp == '2') {
			header("Location: http://$_SERVER[HTTP_HOST]/cn/?feed=rss2");
		} else {
			header("Location: http://$_SERVER[HTTP_HOST]/cn/?feed=rss2&cat=".$tmp);
		}
	}
}
?>
WWW.YIHUI.NAME XIE@YIHUI.NAME © 2007 - 2010 by Yihui Xie