ユーザーがサイトのあるページ(http://sample.com/hoge/)に来た際に、ブラウザの優先言語が日本語の場合はjaページ(http://sample.com/hoge/ja/)、英語やそれ以外の言語の場合はenページ(http://sample.com/hoge/en/)に飛ばす方法のメモ。
やり方は以下のサイトから。
Redirect according to browser language: mod rewrite and HTTP_ACCEPT_LANGUAGE | Michal Borychowski
本来は
RewriteCond %{HTTP_ACCEPT_LANGUAGE}
とか書きたいところを、この変数がApacheに存在しないので、
RewriteCond %{HTTP:Accept-Language}
にするのが肝らしいです。
で、書いてみた.htaccessファイルはこちら。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:Accept-Language} ^ja [NC] RewriteRule ^$ /hoge/ja/ [L,R=301] RewriteRule ^$ /hoge/en/ [L,R=301] </IfModule>
FireFox,IE,Chromeで問題なさそうだったのでOK。