browscap で iOS 4 を検出できない
SPECIAL
browscap に iOS 4 の情報を追加する
以前に EZ-NET 研究室: browscap を用いてブラウザーの判定を可能にする で、browscap を利用して訪問者のブラウザーを判定する方法についてしるしましたけど、平成 22 年 6 月 23 日現在、browscap の Version 4534 では iOS 4 の Safari を識別することが出来ないような感じでした。
もっとも、iOS 4 が登場して間もないところもあるので、近いうちにすぐ対応した ini ファイルが公開されるものと思いますけど、今のところは自分で追加してあげる必要がありそうです。
iOS 4 の Safari は、User Agent として、次のものを Web サーバーへ渡します。
Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; ja-jp) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7
よって、この情報を認識するための情報を "php_browscap.ini" に追加してあげる必要があります。
具体的には、次の内容を追加すれば大丈夫だと思われます。
[Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0* like Mac OS X; *) AppleWebKit/* (KHTML, like Gecko)*]
Parent=iPhone
Version=4.0
MajorVer=4
MinorVer=0
[Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0* like Mac OS X; *)*]
Parent=iPhone
Version=4.0
MajorVer=4
MinorVer=0
このような内容を "browscap.ini" に書き加えて、"service httpd reload" 等として Apache の設定を再読み込みすれば、iOS 4 の Safari でアクセスした際にも、それが iPhone からのアクセスであることを認識できるようになりました。