全て XML で書いて変換してやる。日記は今のまま。common.xsl を作り、ヘッダ、ナヴィゲーション、フッタをインクルード。-about.xml というファイルがあったら about.xhtml.ja.u8 とか about.html.ja.u8 を出力する build.rb。こういうファイルを作って適切な .htaccess を置いておけば Apache はちゃんと Content-Type: application/xhtml+xml; charset=utf-8 を送ってくれる。

ブラウザの Accept ヘッダが最初に application/xml と text/xml を持ってきているのは何故? 自分の環境だけかもしれないけど。

type-map を使うのもいいかも。自動的に生成してやればいいだけだし。

URI: about
URI: about.xhtml.ja.u8
Content-type: application/xhtml+xml; qs=0.9
Content-language: ja
URI: about.html.ja.u8
Content-type: text/html; qs=0.7
Content-language: ja
URI: about.xml
Content-type: application/xml; qs=0.5
Content-language: ja

こんなの (about.var) を作ってやる。Accept の q の値とこのファイルの qs の値をそれぞれのメディアタイプで掛け合わせて最大になったメディアタイプが自動的に Apache に選ばれる。MultiViews も併用できるから作れるのだけ作ればいいかも。

Accept ヘッダが text/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8, image/png, */*;q=0.5 のとき上記ファイルの about をリクエストすると application/xhtml+xml=0.81, text/html=0.63, application/xml=0.45 で about.xhtml.ja.u8 が選択される。about.var がない(上の記述がない)場合で Accept の q が同じ場合はたぶん先頭から順に選択されるので application/xml になる about.xml が選択される。

  1. トップ
  2. web
  3. サイト構成