999円のMP3プレーヤー!
・紹介記事(1)(2)
靴殺菌脱臭乾燥機「ひかりdeきれい」
紹介記事
ケータイをPCリモコンに!
・紹介記事(1)(2)
携帯電話入力式のPCリモコン!
・紹介記事(1)(2)
バッテリーフリーワイヤレスマウス
紹介記事
電子ブック105円!「伝染るんです。」
紹介記事
電子ブック210円!「ドラえもん通の本」
紹介記事
大人の科学「プラネタリウム」!
紹介記事
スマートモテリーマン講座!
・紹介記事(1)(2)

2009年11月19日

ケータイとiPhoneからのアクセスを専用ページへ振り分ける!

当ブログ「ひまにあ日記」は、MovableType用携帯電話向け変換プログラム「MT4i」を利用してブログ記事を携帯電話向けに変換して表示するようにしているが、再開を機に「MT4i/3.0」にバージョンアップさせた。また再開を機に「iPhone」用のコンテンツ生成テンプレート「iPhoneテンプレートfor MT」を適用し、「iPhone」に適した表示ができるようにしてみた。まあ、単に私が「iPhone3G」を持っているので対応しただけだが。

「MT4i」も「iPhoneテンプレートfor MT」もそれぞれ専用のURLにアクセスする必要があるが、「ひまにあ日記」では以前よりブログを設置しているWebサーバー(Apache)の設定で携帯電話/PHSからのアクセスを自動的に「MT4i」へ振り分けるようにしていた(→関連記事「ケータイでブログ!その5」など)。今回、新たに「iPhone」と「iPod Touch」からのアクセスを「iPhoneテンプレートfor MT」へ振り分ける設定も追加してみた。

実は今まで公開していた振り分け設定(.htaccessファイル)は少々「鈍くさい」書き方だったので、(何度もしつこいが)再開を機に新たに書き直してみた。といっても、まだ「鈍くさい」かもしれないが、個人的には以前よりスッキリしたと思う。

BrowserMatch ^DoCoMo output=mt4i
BrowserMatch ^KDDI output=mt4i
BrowserMatch ^UP.Browser output=mt4i
BrowserMatch Vodafone output=mt4i
BrowserMatch J-PHONE output=mt4i
BrowserMatch SoftBank output=mt4i
BrowserMatch WILLCOM output=mt4i
BrowserMatch DDIPOCKET output=mt4i
BrowserMatch iPod output=iphone
BrowserMatch iPhone output=iphone

RewriteEngine On RewriteCond %{ENV:output} ^iphone$ RewriteRule “iPhone用ページへリダイレクト(1)” RewriteCond %{ENV:output} ^iphone$ RewriteRule “iPhone用ページへリダイレクト(2)” RewriteCond %{ENV:output} ^mt4i$ RewriteRule “MT4iのCGIへリダイレクト(1)” RewriteCond %{ENV:output} ^mt4i$ RewriteRule “MT4iのCGIへリダイレクト(2)”

要は、「BrowserMatch」でアクセス元(ブラウザ)の種類を識別して変数を設定し、「RewriteCond」で変数を判定し、「RewriteRule」でリダイレクトしている。ブラウザがケータイの場合は変数に「mt4i」、iPhoneの場合は「iphone」を設定し、変数の値が「iphone」ならば「iPhone用ページ」、「mt4i」ならば「MT4iのCGI」のURLへリダイレクトするわけだ。

以前の設定では、ブラウザ識別を「RewriteCond」の「OR結合」で行っていたが、リダイレクトルール(RewriteRule)を増やす度にブラウザ識別用の「RewriteCond」をズラズラと書く必要があり、スマートではない。iPhone用のリダイレクトルールも追加すると、さらに「RewriteCond」に記述(条件式)が増えて収拾がつかなくなるので、「BrowserMatch」でブラウザを識別・変数設定しておき、「RewriteCond」では変数チェックを行うだけにした。こうすると上記のように「変数判定記述のRewriteCond」と「リダイレクトルール記述のRewriteRule」のペアを増やすだけで済む。

まあ、以前は「RewriteCond」で変数(環境変数)を参照できると知らなかったので、苦肉の策で「RewriteCond」を組み合わせて力業で振り分けていただけで、今回の設定が一般的には常道なのだろう。

なお、見れば分かるが、今回の設定はあくまでも一例であり、“MT4iのCGIへリダイレクト(1)”などの記述をページ振り分けをしたいブログの環境により書き直す必要がある。当然、「ひまにあ日記」での実際の設定は、リダイレクトのルールをキチンと記述してある。

.htaccess の作成場所も環境によって変わるので注意する必要がある。例えば、既に.htaccessファイルが存在する場合は、設定置き換えではなく、追記すべきである。.htaccessファイルの設定はWebサーバの挙動を変えてしまうので、もし万が一、今回の記事を参考にされる場合は、自己責任での利用をお願いしたい。.htaccessファイルを作る場所や設定内容を間違えると、ブログを含めたサイトへの正常なアクセスができなくなるなどの困ったことになるので。

Trackback on "ケータイとiPhoneからのアクセスを専用ページへ振り分ける!"

このエントリーのトラックバックURL: 

"ケータイとiPhoneからのアクセスを専用ページへ振り分ける!"へのトラックバックはまだありません。

Comment on "ケータイとiPhoneからのアクセスを専用ページへ振り分ける!"

"ケータイとiPhoneからのアクセスを専用ページへ振り分ける!"へのコメントはまだありません。


     
Google

Post a Comment

コメントする
(HTMLタグは使用できません)
ブラウザに投稿者情報を登録しますか?(Cookieを使用します。次回書き込み時に便利です。)
  •  
  •