|
mod_negotiation Apache Module
本ページは 2008-04-01 更新されました
Apache Web Server に、複数用意されているドキュメントから、クライアントの能力に一番合ったドキュメントを選択する機能を持たせることができます。
この mod_negotiation モジュール 機能は、コンテンツ ネゴシエーションと呼ばれ、シンプルですが非常に強力です。
利用
mod_negotiation モジュールは、すでに /www/modules/ ディレクトリにリンクされています。
このモジュールを利用するには、/www/conf/httpd.conf ファイルで、以下行のコメントアウトを外してから restart_apache を実行してください。
#LoadModule negotiation_module libexec/mod_negotiation.so
設定
www/conf/httpd.conf ファイルに以下のような設定を追加します。
-
以下のように AddLanguage ディレクティブで、言語ディレクティブを追加します。
AddLanguage en .en
AddLanguage es .es
AddLanguage fr .fr
AddLanguage de .de
AddLanguage it .it
AddLanguage jp .jp
AddLanguage ディレクティブで、ファイル拡張子 (.en、.es、.fr、.de、.it、.jp)を、対応する言語の省略形 (en、es、fr、de、it、jp) と関連付けます。
言語の略称は定義済みで、最新のブラウザでは、以下の場所で指定されています。
-
LanguagePriority ディレクティブで、以下のように言語優先順位を追加します。
LanguagePriority en es fr
de
LanguagePriority ディレクティブは、コンテンツ ネゴシエーションで「等価」になった場合や、クライアントのブラウザで優先言語が指定されていない場合(旧バージョンの Web ブラウザ等)のために、優先順位を定義します。
各言語は、優先順位の高い順に表示されます。
-
<Directory /usr/local/apache/htdocs> や <Directory
/home/user_name/www/dom.com> のような、対象としたい Documentroot のディレクトリー指定の Options ディレクティブに MultiViews オプションを追加します。
例えば、httpd.conf が、以下のように設定されていた場合。
<Directory /usr/local/apache/htdocs>
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you (or at least, not yet).
Options Indexes FollowSymLinks
以下のように MultiViews オプションを追加します。
Options Indexes FollowSymLinks MultiViews
The MultiViews オプションは .htaccess ファイルの Options 定義で設定することもできます。
言語固有のコンテンツの配信
vps サーバーの設定は、上記で完了です。
次は、言語固有のコンテンツを作成し、AddLanguage
ディレクティブでの指定に沿った拡張子を付けてアップロードします。
たとえば、index.html ファイルのほかに index.html.en、index.html.es、index.html.fr ファイルを作成します。
ブラウザ クライアントが index.html を要求すると、Web サーバーは Web ブラウザの言語指定を解析し、指定に沿った index.html.* ファイルを配信します。
注意: Web ブラウザが送信した言語設定が、Web サーバーやユーザーが作成したドキュメントで設定されているタイプ定義のいずれにも一致しない場合、Web サーバーは 406 エラー406
(リソースは見つかったが、リソースのタイプが accept で指示されている許容可能なタイプと互換性がないか、または Web ブラウザクライアントによって Web サーバーに送信された accept-encoding ヘッダーと互換性がないため配信できない)
を返します。
例えば、クライアントがギリシャ語のコンテンツ (el) しか受付けない場合で、サーバーに英語、スペイン語、およびドイツ語のコンテンツしかない場合は、クライアントに 406 エラーが返されます。
ErrorDocument スクリプトを作成し、 406 エラーに対して独自の表示をするようにしたほうがよいかもしれません。 |
詳細情報
詳細情報は以下を参照ください。
SPEEDEX サポートポリシー
Copyright @ Cyber Vision Hosting Co., Ltd. All rights reserved.
Email: support@speedex.ne.jp
株式会社サイバービジョンホスティング提供サービス一覧
再販売用レンタルサーバーのSPEEDEX | VPS(仮想専用サーバー) | 共用サーバー | 独自ドメイン取得・運用 | SSLサーバー証明書 | ワイルドカードサーバー証明書 | SEO | Google Apps(TM) | クリエイティブワークの検索エンジン
|