ping送信時、エラーが返ってくる時があるので調べてみると、XML出力時のencodeに問題があることに気づきました。
mtが出力するRSSの文法チェックをすると、
サーバーの "charset" と フィードの "encode" を一致させることをお薦めします
このようなエラーが表示されてしまうのです。
RSSの構文チェックができるfeedAnalyzerのヘルプの説明が分かりやすいので引用すると、
RSSの基本となるXML文書のencode省略時のデフォルトがUTF-8なのに対して ApacheなどのサーバーのデフォルトはUS-ASCIIになります。
これが原因で誤作動や誤認識を引き起こしてしまい、ping送信先で更新を読み取ってもらうはずがエラーが返ってくることがある。
そうすると、折角更新した記事が誰にも認知されないままになってしまう。
いままでmtを再構築することでデフォルトで全てのページがencodeがUTF-8になっているはずだから大丈夫と思い込んで気にも留めていなかった。
.htaccessでencode指定する
Apacheサーバーの場合はencodeを.htaccessで指定する必要がある。
htaccessには既に他の記述をしている場合があるので確認した後、以下の一行を追加する。
AddType "application/xml; charset=UTF-8" xml rdf
このブログの場合、xmlは使っている拡張子だが、rdfは、拡張子として使っている場合は書いておけばいいが、サーバー内で使ってなければ特に必要ない。
最後にhttp://feedanalyzer.com/で構文をチェックしてVALIDであれば完成です。



コメントする
?
?
?
?
?
?