如何检测供稿阅读器访问我的页面?

时间:2008-11-19 16:52:23

标签: rss web-applications feeds user-agent

我想从单个URL提供不同的内容,具体取决于用户是浏览器还是RSS阅读器(因此避免使用example.com/feed URL)。因此,www.example.com/posts会将(X)HTML页面返回给浏览器,并将RSS源返回给订阅源阅读器。

在结构上最合适的方法是什么?

PS对于一个软球问题怎么样......:)

2 个答案:

答案 0 :(得分:5)

我不确定在所有情况下都有可能。考虑使用Safari的RSS阅读器的用户,假设它在下载RSS源时使用相同的浏览器标识符字符串,您如何区分这两种模式?

我真的会重新考虑这种方法,单独的Feed网址没有任何问题。

答案 1 :(得分:2)

让我向您介绍用户代理HTTP header。它将包含访问您页面的客户端的标识字符串。它可以伪造,但如果它是RSS阅读器或浏览器,你就不能100%确定。

此外,RSS阅读器可能会为rss内容类型发送Accept标头,您可以使用它来实现content negotiation(Apache中的MultiViews)。

但是由于没有确定的消防方式,你最好在服务HTML方面比RSS更失败,或者更好的是,像其他人一样做,并为RSS提供不同的提要。