ミケネコ研究所 ミケネコ研究所 > htaccess リファレンス > コンテンツネゴシエーション

コンテンツネゴシエーション

クライアントに返送するデータを、条件によって選択して提供します。


解説


言語ネゴシエーションの例

言語ネゴシエーションは、日本人がアクセスしたときに日本語で書かれたページを、アメリカ人がアクセスしたときに英語で書かれたページを提供します。言語ネゴシエーションは、次のようにして「MultiViews 検索」を有効にします。

AddLanguage jp .jp
AddLanguage it .it
AddLanguage en .en
LanguagePriority jp en it

Options +MultiViews

これは、日本語、英語、イタリア語の3種類の言語をサポートする例です。各言語のファイルは、

という拡張子で保存しておけば、index.html というアクセスによって、サーバはクライアントの言語設定(*1)に従って、〜.jp、〜.it、〜.en のファイルの中から適切なファイルを自動的に選んで提供するようになります。

*1 : ほとんどのブラウザーには「言語の優先順位」を設定できる項目があります。


リファレンス


AddLanguage

AddLanguage mime-lang extension extension...
AddLanguage jp .jp
AddLanguage en .en

拡張子 extension に対して、言語種類 mime-lang を定義します。例えば上の例だと、index.jp.html に対して、日本語で記述されていることを定義します。

LanguagePriority

LanguagePriority mime-lang mime-lang...
LanguagePriority jp en fr

index.html に対して MultiViews リクエストがあったとき、サーバはディレクトリから index.* にマッチするファイルを探します。もしクライアントから優先順位が定められていれば、そのドキュメントを返します。

しかし、クライアントがとくに優先順位を表さない場合のために、LanguagePriority で優先順位を定めます。

上記の例では、クライアントから優先順位を定めずに index.html がリクエストされたとき、サーバ上に index.html と index.jp.html と index.en.html が存在した場合、index.jp.html が選ばれます。


ミケネコの htaccess リファレンス http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/