ブラウザの種類によるアクセス制限

最終修正日 2007.10.24. 

 

ユーザーエージェントとは

ブラウザはUser-Agent(ユーザーエージェント)という形で名乗っています。
ブラウザの名前で判断する方法をここでは扱います。.htaccessで制御しますので、使えるサーバーが限定されます。これでサイト一括ダウンロードソフトとかロボットとかクローラーとか携帯ブラウザを弾く事ができます。自分のUser-AgentはCyberSyndromeのENV Checkerで確認できます。このUser-Agentも任意でブラウザが名乗るものですから偽装は可能です。なおUser-AgentにはMacintosh等のOSの情報が送られていることが多いので、MacとWinの振り分けも可能です。

 User-Agentについて詳しくは→ ユーザーエージェント - Wikipedia

 

特定のブラウザだけを入れる

インターネットエクスプローラーとかサファリとかネットスケープとかのメジャーブラウザ?だけを通したい場合はこう書いて下さい。

SetEnvIf User-Agent "Mozilla" Angel
Order Deny,Allow
Deny from all
Allow from env=Angel

上記の命令の意訳です。

環境変数設定。お名前がもじらであることを仮に「エンジェル」ということにします。
選ばれた人だけを入れる方式でいきます。
とりあえず、みんな入らないで下さい。
でも「エンジェル」な人だけは入っていいよ。

Mozillaはネットスケープやインターネットエクスプローラーのユーザーエージェントに含まれる文字列です。

 サンプル
 
インターネットエクスプローラーだけを入れる

受け入れたいブラウザが複数ある場合は、こう書きます。赤文字部分を書き替えて下さい。

SetEnvIf User-Agent "ブラウザA" Lilith
SetEnvIf User-Agent "
ブラウザB" Lilith
Order Deny,Allow
Deny from all
Allow from env=Lilith

この設定で弾いた人間を別ページに飛ばす場合は、こう書きます。

SetEnvIf User-Agent "Mozilla" Lilith
Order Deny,Allow
Deny from all
Allow from env=Lilith
ErrorDocument 403
/~aaa/b/403.html

受け入れたいブラウザが複数あり、別ページに飛ばす場合は、こう書きます。

SetEnvIf User-Agent "ブラウザA" Lilith
SetEnvIf User-Agent "
ブラウザB" Lilith
Order Deny,Allow
Deny from all
Allow from env=Lilith
ErrorDocument 403
/~aaa/b/403.html

詳しくはアクセス制限された相手を特定のファイルに跳ばすを参考にして下さい。

特定のブラウザだけを弾く

サイトダウンロードソフトや携帯ブラウザだけを弾くとかですね。この場合は、userAgent(ユーザーエージェント一覧)UserAgentのデータベースを作りましょう。も参考になります。荒らし対策やロボット対策として、特定の相手を弾きたい場合は、アクセス解析等をして、相手のユーザーエージェント名を特定して下さい。

弾きたいブラウザが単数の場合は、こう書きます。赤文字部分を書き替えて下さい。

SetEnvIf User-Agent "Mozilla" Lilith
Order Allow,Deny
Allow from all
Deny from env=Lilith

弾きたいユーザーエージェントが複数ある場合は、こう書きます。

SetEnvIf User-Agent "Mozilla" Lilith
SetEnvIf User-Agent "
Ninja" Lilith
Order Allow,Deny
Allow from all
Deny from env=Lilith

 サンプル
 
インターネットエクスプローラーだけを弾く

この設定で弾いた人間を別ページに飛ばす場合は、こう書きます。

SetEnvIf User-Agent "Mozilla" Lilith
Order Allow,Deny
Allow from all
Deny from env=Lilith
ErrorDocument 403
/~akikan/kaigai/403.html

弾きたいユーザーエージェントが複数あり、弾いた人間を別ページに飛ばす場合は、こう書きます。

SetEnvIf User-Agent "Mozilla" Lilith
SetEnvIf User-Agent "
Ninja" Lilith
Order Allow,Deny
Allow from all
Deny from env=Lilith
ErrorDocument 403
/~akikan/kaigai/403.html

 サンプル
 
MozillaとNinjaを弾く

なお、「ネスケ4.7はスタイルシートへの対応が中途半端だから振り分けたい」というような場合は.htaceessではなくスタイルシートを読み込ませない方法をお奨めします。スタイルシート例文辞典にも、様々なスタイルシートの振り分け方が記述されています。

逆に、自分のサイトが自分が普段使っていないブラウザでどう見えるか知りたいという方は、Test your web design in different browsers - Browsershots使い方)等をお使い下さい。


  
< prev back next >