久々の記事
自前でブログのようにRSSを出力したり、Pingを飛ばしたりなんてことに挑戦している
おおよそ完成した。。
が、rdf 拡張子でRSSのfeedを出力するようにしたのだが、ブラウザで直接ファイルにアクセスしてみると、FireFoxでは内臓リーダーのようなフォーマットで開けるがChromeだとダウンロードのダイアログが表示されてしまい、ファイルを開けない
通常だと、xml形式で下の画像みたいに開けるはず。(画像のはChrome)
このブログ wordpress のfeedは、https://ydk.mixh.jp/osamushi.jp/feed/ となっていて拡張子は見えないけど、恐らくindex.xmlとかそんなファイル名だと思う。たぶん。
rdf という拡張子が原因かとも思ったが、livedoorなりfc2なりメジャーなブログのRSS機能で生成されるファイルは、どれも拡張子に関係なく、ブラウザで開ける
さくらのサーバーを使ってるのだが、ファイルマネージャーでフォルダ内をみるとXMLファイルにはファイルタイプが xml となっているのに対してRDFファイルはただ “ファイル” となっているだけ
なんかこの辺にヒントがあるような気がする
普段あまり意識しなかったが、OSなりブラウザなりがファイルを開くときに何を使って開くかを判断するための「MIME タイプ」という規格があるのは記憶にあった
そのMIMEタイプが、対象のファイルに関連付けされていないのではないかと考えてみた
Windowsでも、使ったことのない拡張子のファイルを開こうとすると「このファイルを開けません」がでることがあるよね
つまり、このWindowsで起こる現象と同じことがブラウザで起こったんじゃね?という訳
ググレカス
ということでググりますた
世の中にはスバラスィ人がいらっしゃる
サーバーによりますけど、htmlとかxmlとか、昔からあるメジャー拡張子は最初から関連付けがされているけど、rdfのような最近のヤツはコッチで関連付けしてやる必要があるらしい
本件の場合はrdfという拡張子のファイルをxmlとして認識させたいので、対象ファイルの格納されているディレクトリに下記を記述したファイルを .htaccess として置けばよい
AddType xml rdf
rdfといっても中身はxmlなので、これでおk
実際やってみると、Chromeでは開けた
だがIEではNG
livedoorがrdfなので、livedoorのブログfeedをIEで開いてみたのだが、IE内臓と思われるリーダー形式で開いた
リーダーで開くということはlivedoorブログがIE対策として何か仕掛けしてるのかもしれないが、よくわからん
最後にOperaで開いてみたらChromeと全く同じフォーマットで開いた
そういえばOperaとChromeは同じブラウザエンジン(レンダリングエンジン)「Blink」を採用しているからなのかも
おそらくブラウザエンジンに依存してるんだろうね
FireFoxで開いてみると、関連付け前に開いた内臓リーダーでは無く、Chromeなどと同様のxml形式で開いた
本来 RSS feed はリーダーで読むもので、ブラウザで開けなきゃいけないというものでは無いので、IEだけ開かないが追求はこのへんで終わり
半端でスマソ
コメント