blog.fuktommy.com

Multiviewsのススメ

CoolなURLを作るには」や 「画像もDBに格納して管理する話とCoolなURLの作り方の話をまとめて補足。」、 あるいは「まちゅダイアリー - よりCoolなURLを作るには」を読んだんだけど、 Multiviews がさっぱり話題にならないので、紹介しておきます。

言語を選んでくれる

Options +Multiviews
LanguagePriority en ja
DirectoryIndex index
MultiviewsMatch Handlers

こんな感じで設定しておきます。 この状態で「(このパス)/」にアクセスすると、 ブラウザの設定で日本語を優先にしているときは index.ja.html あるいは index.html.ja とかが表示され、 英語だと index.en.html になり、 それ以外だと優先度順で index.en.html が表示され、 そのほかの言語のファイルも用意されていればそれが表示され、 コンテントネゴシエーション非対応のユーザエージェントだと index.html が表示されます。

「(このパス)/hoge」がhoge.ja.htmlやhoge.en.htmlになったりもします。

「MultiviewsMatch Handlers」の設定をしておくと、 「(このパス)/fuga」がfuga.phpやfuga.htmlになったりします。

言語が違ったらURLも分けるべき、という考えもありますので、 その辺は自分のポリシーに従ってください。 ちなみに新月公式サイトは この仕組みで日本語と英語を切り分けています。

画像などで、いくつかのフォーマットの中から適切なものを選ぶ、 という局面でも使えるはずなんですが、 実際の使いどころはちょっと思いつかないです。

拡張子を省略できる

Options +Multiviews
DirectoryIndex index
MultiviewsMatch Handlers

http://blog.fuktommy.com/rssにアクセスすると、 この設定でrss.rdfが表示されるようになっています。

拡張子があった方がわかりやすいという考え方もあって、 この辺もポリシー次第。 同じ設定で、 rss.rdfを呼ぶとrss.rdf.phpが呼ばれる、というのもできます。

欠点

一部の携帯端末と相性が悪くて、 406エラーを出す(YappoLogs: J-PHONEでのIMGタグとMultiViewsについてのはまりどころ または AKIBA de: Softbank 3G携帯で406 Not Acceptableエラーが出た場合) とか、 入力したURLと、現在のURLとして表示されるものが違うとか、 そういうことがあるんですけど、体系的に調べてないのでわからないです。

Copyright© 1998-2014 Fuktommy. All Rights Reserved.
webmaster@fuktommy.com (Legal Notices)