Tags: ユーザーエージェント

モバイルのサイトを作るときに、PCなどの端末からのアクセスをブロックする
あるいは別のページに飛ばすことが必要になることがあると思います。
mod_rewriteを使えば、ユーザーエージェントを使いまわせるので、
phpなどですべてのページにユーザーエージェントの選り分け処理を書く手間が省けます。

以下はhttpd.confのvirtualhostディレクティブの中に書いたものです。
なおhtaccessに書く場合は若干書き方が変わるので注意してください。

Code:

RewriteEngine On#rewrite engineの初期化
RewriteLog "/var/log/httpd/yourdomain.log"#logの書き出し
RewriteLogLevel 3#logの書きだしレベル(0-9の間)
 
#以下ケータイ端末のユーザーエージェントをANDで連結する
RewriteCond %{HTTP_USER_AGENT} !^DoCoMo     [NC]
RewriteCond %{HTTP_USER_AGENT} !^KDDI       [NC]
RewriteCond %{HTTP_USER_AGENT} !^Up.Browser [NC]
RewriteCond %{HTTP_USER_AGENT} !^J-PHONE    [NC]
RewriteCond %{HTTP_USER_AGENT} !^vodafone   [NC]
RewriteCond %{HTTP_USER_AGENT} !^SoftBank   [NC]
RewriteCond %{HTTP_USER_AGENT} !^MOT-   [NC]
RewriteCond %{HTTP_USER_AGENT} !^Semulator   [NC]
RewriteCond %{HTTP_USER_AGENT} !^Nokia   [NC]
RewriteCond %{HTTP_USER_AGENT} !^Y\!J   [NC]
 
#上記以外のユーザーエージェントがアクセスした場合は別ファイルに飛ばす
RewriteRule ^/(.+)$ /disable.php [L]

注意すべきはひとつのルールに対して条件を設定していくので
複数のルールにたいしても共通の条件を設定したい場合は
ルールの数だけ同じ条件を書かなければいけないということです。
これにはだいぶハマった・・・。

なお現在の検索エンジンのクローラーのユーザーエージェントは
ドコモやソフトバンク、AU、またはNOKIAのユーザーエージェントを
偽装(実装?)してアクセスしてくるので問題ないと思われます。

はじめまして。Takeshiといいます。今年の四月から、恵比寿の小さな会社でウェブSE兼プログラマーとして働き始めました。主にLAMP環境でウェブサービスやウェブサイトの構築をやっています。社会人なりたてということもあり、右も左もわからない状況ですが、日々感じたことや、覚えたことなどをメモっていきたいと思います。コメントやトラックバックなどいただけると、とても嬉しいです!それでは、よろしくお願いいたします。

2月 2012
 << <   > >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

検索

XMLフィード

free blog