做了些缝缝补补——URL、RSS
转载
前些日子把 url 用 alias 改写了——一直认为 alias 要比 rewrite 的效率要高的多,
[code]
Alias /blog/archives "/www/soulogic/www/blog/read.php"
Alias /blog/comments "/www/soulogic/www/blog/comments.php"
Alias /blog/date "/www/soulogic/www/blog/index.php/date"
Alias /blog/category "/www/soulogic/www/blog/index.php/category"
Alias /blog/files "/www/soulogic/www/blog/files.php"
[/code]
alias 转向后还是需要读 pathinfo,但也保证了迁移的时候是无缝,老的 URL 也可以使用。即同时可以用这三种形式的 URL 访问,得到的页面是一样的:
[code]
http://soulogic.com/blog/category/sciencefiction_0.html
http://soulogic.com/blog/index.php/category/sciencefiction/0.html
http://soulogic.com/blog/index.php?folder=sciencefiction&page=0
[/code]
这是我非常满意的部分,而且通过修改一个数组,可以产生任意格式的 URL,一开始我就把各个 URL 给分离出来了,这可能是老的 CMS 类代码所不注意的地方。
[hr]
一个失误就是忘了 RSS 的 XML 里 <guid> 这个元素,导致上次更改的时候,仅仅是 URL 变了,但 <guid> 是文章的 URL 也就跟着变了,结果被全部认为是新文章,reader 里会再增加 10 个条目。也可能是 [url=http://blogs.law.harvard.edu/tech/rss]RSS 2.0 规范[/url] 里的例子太不好了,误导了很多 blog 软件。[url]blog.donews.com[/url](曾经的 donews.net)恰好前几天也出现了类似的问题,导致所有人的 RSS 被重复了一遍,但遗憾的是他们没有注意到这个问题。
对于 RSS 来说,URL 并不重要,重要的是被格式化好的内容本身,URL 是 /archives/123.html 还是 /archives.php?id=123 对于 RSS reader 来说并不重要(他们甚至很少被点击),而你能用什么样的 URL 取决于你的程序放在什么地方,如果是虚拟主机,又不支持 .htaccess,那你就无法使用 alias 或者 rewrite。
因此,<guid> 应该是一个尽量不会变动的、独立的变量,现在,我让它是类似“soulogic_blog_123”这样的形式,而且还得加上个判断,让老条目的 <guid> 继续保持原有的 URL 形式,不然又会被当成新条目了。
此外,开始同时生成 摘要/全文 两种 RSS 了。以前这个问题被争论过很多次,到底哪种好,真奇怪,既然能提供各种格式的 rss/rdf/atom,那也同时提供 摘要/全文 RSS 不就结了?但默认要指向哪种(也就是要在 html <header> 里供自动挖掘的那个 <link rel="alternate" ……),还没想好
全文 RSS 地址:
[quote]
http://feeds.feedburner.com/soulogic/full
[/quote]
[hr]
在 [url]douban.com[/url] 认领 blog 的时候发现他把我的三个不同的 RSS 地址都显示出来,然后让我选我希望显示哪个。估计是因为发现 md5 一样就判断为同一个了吧。如果是三个不同格式的 RSS 是否也能认出来,没去试。
[hr]
[url]feedburner.com[/url] 有两点,一是我得感叹这么简单个东西能让他玩出这么多花来,二是,我真的想不明白鸭靠什么赚钱……