Accept-Languageによる言語切り替えをmod_rewriteで実装するには

ブラウザの言語設定に合わせて言語ごとに表示するページを切り替えたいときは、ブラウザから送られてくるHTTPヘッダーのAccept-Languageヘッダーを利用します。
ちゃんとしたサイトであればCMSの言語切り替え機能を使えばいいのですが、スタティックなHTML1,2枚のちょろっとしたサイトを作るのにわざわざスクリプトで言語切り替えるのもぎょうぎょうしいなという場合は、言語ごとにHTML用意してmod_rewriteで読み込むページを切り替えてしまうのが一番簡単です。

例えば、以下の様にHTMLを配置した場合。

  • index.html:英語のページ
  • index.ja.html:日本語のページ

mod_rewriteの設定は以下の様になります。

RewriteEngine on
RewriteCond %{HTTP:Accept-Language} ^ja [NC]
RewriteRule ^/index.html$ /index.ja.html

ブラウザのHTTPヘッダーAccept-Languageがja始まりの場合だけ、日本語のページに切り替えて、それ以外は英語で聞かれているindex.htmlをそのまま表示します。