RSSと相対URL

RSS(Atomもですが)に相対URLによる画像や相対URLによるリンクが含まれる場合というのは結構あるようです。いわゆるblogではまずHTMLのエントリありきなわけで、エントリを書く時にこのような状態にしてしまうと、RSSでもそのままというのはまぁわからないでもないです。てか、それで問題はないんじゃないかとかは思ったりしないでもない(RSSのパスから見て正しい参照になっていればですが)。

ただ、RSSリーダーで相対URLは解釈しないものは多いんではないかなとか。そうなるとリンク切れの激しくダメな結果になるので、RSSだけでも絶対URLに無理やり直してあげておいたほうが良い気がする。

うちのサイトの場合は基本的には/で始まるパスで自分のサイト内のコンテンツへのリンクを張り、RSSなどを出力するプラグイン側で無理やりhttp://で始まる絶対URLに変換しています。無理やりコード。

$content_encoded =~ s!"/!"http://hail2u\.net/!g;

うわ、なんだこれ。URIモジュール使えよって感じだな。

本題とはあまり関係ないですが、/で始まるパスで統一(各エントリへのリンクだけなぜか絶対URLですが)している理由は、PATH_INFOに/が含まれるというblosxomの独特の仕様により、./や../で始まるパスではうまいこといかないからです。

「http://で始まる絶対URLに統一すれば良いじゃん」とか言ってはいけません。