FeedBurner出问题之后,我当天就用“Permalink重定向插件”把Permalink重定向到了Feedsky,然而,今天猛然发现Feedsky几天没有更新我的RSS了。仔细一看,发现一个“死循环”问题:我的Feedsky请求RSS时,又被302重定向到了Feedsky自己,所以内容毫无改变……
于是,连同很久之前的一个疑惑,我打开了“Permalink重定向插件”的源文件。发现和我的推测还是一致的:该插件将选择性地进行302返回。即,所有FeedBurner的请求不做302重定向,而来自其他方式的请求,全部返回给302重定向。这样做的好处大家仔细想想,不言而喻。
今天在Magike的帮助下,改善了这个函数,让Feedsky也可以“兼容”了。只需要将“redirect_feedburner”函数改写为如下内容,就可以了:
function redirect_feedburner() { global $withcomments; if (is_feed() && !is_archive() && !$withcomments) { if (!(strpos($_SERVER['HTTP_USER_AGENT'],'FeedBurner')!==FALSE || strpos($_SERVER['HTTP_USER_AGENT'],'Feedsky')!==FALSE)) { if (($feedburner = get_settings('permalink_redirect_feedburner'))) { $brand = get_settings('permalink_redirect_feedburnerbrand'); $brand = $brand ? $brand : 'feeds.feedburner.com'; $this->redirect("http://$brand/$feedburner", 302); } } } }
结论:
- Permalink原函数的逻辑似乎很奇怪,而且有几个荒废函数没起到作用(例如is_feedburner,is_skip),争取联系一下作者(还是个华裔澳洲人)改善一下
- IE7和Firefox都会对301、302做Cache,这让我的调试非常不爽,好在Magike帮我写了一个CURL的请求方式,可以直接获得返回详细情况
- FeedSky在高频Ping下会停止Ping功能,不过大约5分钟后又恢复
- 当今环境下,除了你自己的域名以外,没有任何域名是靠谱的。
- 请WordPress博客们使用Permalink Redirect吧,是个好东西:)
- 从我这几天的访问数据来看,RSS这个东西的稳定性和时效性还是非常重要的,它将会直接影响订阅量、访问量,所以,必须派重兵照看:)
- 不同于301,302是临时重定向,这也从思想上和第4点吻合
一语点醒梦中人啊!哎,我说怎么我的feedsky…
技术问题!!!
请问,你的标题前面的发文日期图标,好漂亮?是WP的插件吗?回答我一下。谢谢。
感觉不像插件啊
能否提供这个插件给我啊 期待佳音~~
好像没下载地址!!!!