.htaccessを使って、携帯電話等のモバイル機器・組み込みブラウザからのアクセスをサーバA(mobile.example.com)に、PC・その他からのアクセスはサーバB(example1.jp)に振り分ける仕組みを作ってみました。
仕組みは簡単。Apacheのmod_rewriteモジュールを使って、ユーザエージェントで飛ばすサーバを選び、URLを書き換えて別サーバに飛ばしているだけです。
なお今回は、携帯電話だけではなく、Lモードやゲーム機・家電等の組み込み系ブラウザも別サーバに飛ばす設定にしています。
RewriteEngine on#まずURLを、PC・その他用のサーバAに書き換える
RewriteRule ^(.*)$ http://example1.jp/$1
#ユーザエージェントを見て、
RewriteCond %{HTTP_USER_AGENT} (UP\.Browser|DoCoMo|J\-PHONE|Vodafon|SoftBank|DDIPOCKET|WILLCOM|DreamPassport|PSP|Nitro|AVE\-Front|Windows\ CE|L\-MODE) [NC]
#モバイル機器・組み込みブラウザだったら、URLをサーバBに書き換える
RewriteRule (.*)example1.jp(.*) $1mobile.example.com$2 [R,L]
たぶん、これで問題なく動くはず。
画像サーバでこの設定を使っていますが、軽く検証したところ、特に問題はありませんでした。
それにしても、302 Moved Temporarilyってこんなところで使われていたのか。へぇ〜。
(初出:はてなダイアリー「Tech² memo」)