Category web.

Accept ヘッダによるコンテントネゴシエーションを実装した。昨日 UA による振り分けでごちゃったばっかりだけど、そいつらはコメントアウト。

とりあえず設定ファイルを用意しといて、Accept ヘッダをパースし、品質を割り当て、鯖側の設定値 (qs) と掛け合わせて一番大きいのを選ぶ。application/xhtml+xmltext/html が同じ優先値になった場合は text/html を選ぶようにしてある。これは IE*/* 送ってくる対策。Opera や Firefox は text/html の順位を少しさげてる (0.9) ので、application/xhtml+xml が選択される。

選択といっても flavor の切り替えなので問題があったりする。同じメディアタイプの flavor の扱いがアレ。コメント用 flavor (.comment) も application/xhtml+xml にしたいんだけど、これだと IE でダウンロードされてしまう。とりあえず XHTML 1.0 にして常に text/html で送信するように変えた。この辺は仕方ないというかなんというか……回避するには UA で判定してやる以外ない。flavor がメディアタイプの選択以外の役割を持っているのが悪いっちゃ悪いんだけど、他にいい方法が思いつかない。

  1. トップ
  2. taglibro
  3. Accept によるネゴシエーション実装
  1. トップ
  2. web
  3. Accept によるネゴシエーション実装

スクリプト変更以降に再インデックスされた部分がのきなみ「ファイルタイプ:不明」で文字化けする。原因がよくわからない。

とりあえず UAGoogle が含まれていたら text/html で送信するようにしといた。

でも application/xhtml+xml が原因だとしたら同じように送信しているほかのサイトも同じ現象がでるはずだけれど、少なくとももずはっく日記 (他に application/xhtml+xml なサイトを知らない) は文字化けせずにヒットする (ただしファイルタイプ不明) 謎だ。

application/xhtml+xmlなサイト - 徒委記 ってのがあった。

text/html と併用のサイトは内部的に何やってるかわからんので、併用してないサイトをぐぐって見る。

ろばQ屋本舗
文字化け。でもファイルタイプ不明ではない
もずはっく日記
文字化け無し。ファイルタイプ不明
謎小屋
日本語で検索結果がそもそもでない。/ はファイルタイプ不明でない/index.xhtml はファイルタイプ不明
ビット研, 実験室のフラスコ
ヒットしない?
  1. トップ
  2. web
  3. Google の検索結果がおかしい

今まで IE には XHTML 1.1 を Content-type だけ変えて送信していたけど、XHTML 1.0 で送信するようにした。

普通のブラウザには flavor.xhtml.xsl, 古いブラウザには flavor.html.xsl を適用する。flavor.html.xsl は flavor.xhtml.xsl を xsl:include たあとに、xsl:output を上書きし、ruby 系の要素を削除してる。とりあえずこれだけ。

  1. トップ
  2. web
  3. text/html => XHTML 1.0 Strict