WordPress 自定义RSS输出若干方法 -part2 -输出FEED到独立域名

偶昨天那篇WordPress 自定义RSS输出若干方法的继续.
原来那篇博文写得仓促,一些没有讲清楚.

现在从头说起,简单的说,就是自定义独立博客的RSS输出路径到独立域名.
假设你在http://example.com 安装了一个WordPress博客,那么WP默认的RSS FEED输出路径是http://example.com/feed

事实上,WP通过mod_rewrite 把 http://example.com/feed 内部重定向到 http://example.com/wp-feed.php .而这个文件才是最终输出FEED的.

我们要做的是,把这个输出路径改为http://feed.example.com

为什么要改? http://feed.example.comhttp://example.com/feed有什么区别?
这个问题问得相当好,事实上,区别并不大,除了对SEO可能有少许影响外,这样做并没有多大意思.-不过,至少,在你博客访客看来,这个独立二级域名的RSS地址更加”专业“,这就够了!

怎么改?首先你必须确保拥有example.com这个域名完全权限
然后,最简单,也是最常用的方法是到Feedsky免费注册个帐号,Feedsky是一个Feed托管网站,免费提供域名绑定功能,你只需要在example.com域名里,添加一条”feed” 的A记录到feedsky指定的IP,然后在Feedsky后台把feed.example.com域名和你的原始RSS地址(http://example.com/feed ) 绑定就可以了
(详细过程参考这里

这样做好处是不占用你自己虚拟主机/服务器资源,还能享受免费的统计功能.

还有一种,就是用自己的空间,通过feed.example.com域名,自己输出RSS.这样可以有最大程度的自主权

但是,直接绑定feed.example.com域名到 example.com域名下的feed目录是不行的.因为http://example.com/feed这个地址中的 feed并不是真实目录,而只是mod_rewrite后的地址!

所以,你必须重新在虚拟主机里添加一个二级域名 feed.example.com ,绑定的目录随意,然后,有两种方法:

A:

直接重定向. 建立一个 index.php在 feed.example.com目录下,内容为:


这样做最方便,而且大部分RSS阅读器都支持.但是,这样访问feed.example.com 输出的头信息是302 Redirect,(如下图)严重不利于SEO.而且也不便于RSS管理..


B

这是推荐方法.同样建立index.php文件,内容为


OK.现在试试看,完全符合我们要求,不仅直接输出FEED内容,最重要的,没有了 302 Redrect
也就是说,它看上去和原始RSS输出毫无区别.:




事实上,Feedsky应该也是用这个原理的(不过feedsky应该没有真正绑定feed.example.com域名,而只是泛域名解析)

这样,每次访客访问feed.example.com读取RSS时,都会被上面的index.php文件处理,并输出真正RSS FEED 到客户端,整个过程对客户端完全透明!你完全可以在这个index.php里加入其它代码实现任何统计功能,甚至做一个小型的Feed烧制系统-就像Feedsky那样!
(我想,应该有人已经做了这种程序吧)

PS:readfile()需要打开 allow_url_open .如果你使用dreamhost虚拟主机,参考这里

B 方法是我推荐的,但这可能耗费一定CPU资源
我没有做过实验,不知道这个readfile() 会耗费多少资源.或者采取变通的方法:

在虚拟主机上增加一个 crontab (需要Shell权限) :
10,20,30,40,50,0 * * * * wget -c http://example.com/feed -O ~/feed.example.com/rss.xml

(把 ~/feed.example.com 换为 你绑定feed.example.com的目录,例如 cPanel主机可能是 ~/public
_html/feed )

然后编辑feed.example.com 的 .htaccess:
DirectoryIndex rss.xml

OK.这样做非常节省资源,基本不耗费CPU(每10分钟才重新生成rss.xml).只是你博客RSS输出会有10分钟延迟.
还有就是无法进行统计.

最后,不要忘了,改改WP模板(Theme),把其中的全文RSS路径改一下.

1 Response to “WordPress 自定义RSS输出若干方法 -part2 -输出FEED到独立域名”


Comments are currently closed.