content_type.flavourが効かない?
2006/04/21 Fri 07:59
ふと、うちのフィードもFeedBurner(日本版)で焼いてみようかと思いたち、
このあたりを参考に、既存の*.rssテンプレートを複製して、拡張子をrss10にして、ヴァリデータで確認……してみたら、なぜかrss10のほうだけinvalidに。テンプレートは全部同じはずなのに。
- ○ feedAnalyzer /index.rss
- × feedAnalyzer /index.rss10
- ○ Feed Validator Results /index.rss
- × Feed Validator Results /index.rss10
feedAnalyzerの結果で違いを探してみると、validなほう(rss)は
URL : http://cu39.s57.xrea.com/index.rss ステータス : OK (200) サーバー : Apache 更新時間 : 不明 ファイルサイズ : 不明 コンテンツタイプ : application/xml charset=utf-8 スペック : RSS1.0 encode=utf-8 タイトル : 氷山みたいなレタス
invalidなほう(rss10)は
URL : http://cu39.s57.xrea.com/index.rss10 ステータス : OK (200) サーバー : Apache 更新時間 : 不明 ファイルサイズ : 不明 コンテンツタイプ : text/html ("charset" は "us-ascii" になります) スペック : 不明 encode=utf-8 タイトル :
ということで、どうもContent-Typeヘッダでコケてるらしい。Feed ValidatorのほうでもContent-Typeがtext/htmlになってるようだし。content_type.rss10が効いていないということなんだろうけど……なんで? テンプレートファイル見直してみたり、blosxom.cgiのソースとにらめっこしたり、.htaccessいじってみたり、blosxom 2.0.1にしてみたりといろいろやったけどダメ。rss10という拡張子を他の文字列(rrrとかrrssとか)に変えてみてもダメで、これが特に不可解。*.rssならcontent_typeテンプレートは効いてるのに。HTTPヘッダを触るプラグインも入れてないしなぁ……。
というわけで、とりあえず現象だけメモして考えてみる。サーバ設定の問題ということもあるのかなぁ。
追記:げ、テストしてみたらイヤなことを発見してしまった。なんかことごとくcontent_type.flavourが効いてなかったらしい……。
対象 | 現在表示されるContent-Type | content_type.flavourの内容 |
/index.html | text/html | text/html; charset=UTF-8 |
/index.rss | application/xml; charset=UTF-8 | application/xml; charset=UTF-8 |
/index.rss10 | text/html | application/xml; charset=UTF-8 |
/index.trackback | text/html | application/xml; charset=UTF-8 |
/index.atom (未使用) | text/html | application/atom+xml; charset=UTF-8 |
ぜんぜんダメだったんじゃん orz こうなるとむしろ、*.rssだけcontent_type.flavourが有効になってることのほうが不思議。
このサンプルだけを見て考えると拡張子3文字以上はNGという推測も成り立つけど、cp *.trackback *.tstして作ったtstフレーバーテンプレートでも同じくNG。むむむ。
追記:テスト用CGIでヘッダを比べていると、ModLayoutが働いているものだけヘッダが上書きされていることがわかって、腑に落ちた。もっと早く気づいてもよかったな。XREA固有の問題にももう慣れたよ……。
X-Powered-By: ModLayout/3.2.1
広告の自動挿入、ModLayout関連のでのエラーは既知の問題となっています。
特にヘッダーを操作、上書きする処理にエラーが発生します。クッキー、Location等で期待しないエラーが発生します。
このような場合は、手動で挿入してください。残念ながら、現在のところ、ModLayout関連のエラーは修正予定はありません。
別の広告配信システムを1年以上前から用意していますが、変更いたしますと、ModLayout関連のコマンドが使えなくなるため、保留しています。
ModLayoutコマンドが使えなくなってもいいから別の表示法に切り替えてほしいなぁ……まあそれを期待するなら金払ったほうが早いという話か。
ひとまず.htaccessでいくつかの拡張子をLayoutIgnoreURIさせていただいた。アプリ自動処理系だから許してもらえるだろう、と思っておくことにする。
LayoutIgnoreURI *.atom LayoutIgnoreURI *.rss LayoutIgnoreURI *.rss10 LayoutIgnoreURI *.trackback
でも、こうする前から*.rssに関しては上書きされてなかったのは謎のまま。大元の設定で切ってるのかな。