よくあるご質問 ご利用の注意事項 当サイトについて お問い合わせ
cman.jp > htaccess作成 > htaccess解説 > アクセス制限(UserAgent)
htaccess解説/アクセス制限(ユーザーエージェント)
ホームページへのアクセスには、アクセスしたパソコンのブラウザやOSの情報が含まれています。この情報をユーザーエージェント(User-Agent)と言います。
htaccessでユーザーエージェントを判定することで、特定のブラウザやOSからのみアクセス制御することが可能となります。
ただし、ユーザーエージェントは偽装も可能なため必ず正しい情報とは限りません。
実際に付加されている情報は、当社「IPアドレス確認」サービスでご確認いただけます。
1.OSとブラウザによるアクセス制限を行う
多くのブラウザで、User-AgentにOSやブラウザの情報が含まれています。htaccessでこの情報を利用することによりアクセスの制御(許可/拒否)が可能です。
(注意)ユーザーエージェントは偽装される可能性があるため、正確な判定はできません。
(User-Agent例)
以下は同一パソコンから3種類のブラウザを使用した時に発信されていたUser-Agent
【InternetExplorer8】
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.5; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

【Firefox3.6】
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 (.NET CLR 3.5.30729)

【Chrome6】
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3
上記は、「Windows」(緑色)でOS、「MSIE」「Frirefox」「Chrome」でブラウザが分かります。
「.htaccess」ファイル
この設定で、ユーザーエージェントに「MSIE」が含まれる場合のみアクセス可能となります。
SetEnvIf User-Agent "MSIE" ok_ua
order deny,allow
deny from all
allow from env=ok_ua
構文 意味
SetEnvIf User-Agent User-Agentの条件を正規表現で記載します。
例は、「MSIEを含む」の条件となります。
条件に該当するときに「ok_ua」が真(true)となります。
正規表現のエスケープが必要です。
order 拒否と許可の見る順番を指定している
allow:許可する、deny:拒否する
例は、「拒否(deny)」→「許可(allow)」の順に見る
deny 「拒否」する条件を指定
例は、「from all」としてすべて拒否しています。
allow 「許可」する条件を指定
例は、「SetEnvIf User-Agent」で指定した条件に該当しているかを判定しています。
該当する場合に「許可」となります。
【注意事項】
  • allowとdeny
    orderの順番に注意してください。上記では「すべて拒否だけどallowで指定した条件に該当する場合は許可」となります。逆にした場合、「allowで指定した条件に該当する場合は許可だけど、やっぱりすべて拒否」となり、全てのアクセスが拒否されてしまいます。
  • ユーザーエージェント(User-Agent)
    ユーザーエージェントは偽装が可能なため正確には判定できません。このため、正常なアクセスなのに拒否する可能性があります。
2.検索エンジンによるクローラーのアクセス制限を行う
多くの検索サイトでは、クローラー(検索エンジンによるロボット巡回)によるアクセスを行う場合、ユーザーエージェントに情報を設定しています。htaccessでこの情報を利用することによりアクセスの制御(許可/拒否)が可能です。
(注意)ユーザーエージェントは偽装される可能性があるため、正確な判定はできません。
(User-Agent例)
以下は代表的な検索サイトからのクローラー時にUser-Agentに設定している内容となります。
【Yahoo】
Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)

【Google】
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

【MSN】
msnbot/2.0b (+http://search.msn.com/msnbot.htm)
上記以外は、yahooやgoogleなどで「検索エンジン User-Agent」を検索すると、多くの情報が確認できます。
上記の検索エンジンのアクセスを拒否することは少ないと思いますが、海外からクローラーによる大量のアクセスが行われることもあり、検索エンジンを拒否することもあります。
「.htaccess」ファイル
この設定で、bot.example.jp(仮想の検索エンジンクローラー)からのアクセスを拒否することが出来ます。
SetEnvIf User-Agent "bot.example.jp" ng_ua
order allow,deny
allow from all
deny from env=ng_ua
構文 意味
SetEnvIf User-Agent User-Agentの条件を正規表現で記載します。
例は、「bot.example.jpを含む」の条件となります。
条件に該当するときに「ng_ua」が真(true)となります。
order 拒否と許可の見る順番を指定している
allow:許可する、deny:拒否する
例は、「許可(allow)」→「拒否(deny)」の順に見る
allow 「許可」する条件を指定
例は、「from all」としてすべて許可しています。
deny 「拒否」する条件を指定
例は、「SetEnvIf User-Agent」で指定した条件に該当しているかを判定しています。
該当する場合に「拒否」となります。
【注意事項】
  • allowとdeny
    orderの順番に注意してください。上記では「すべて許可だけどdenyで指定した条件に該当する場合は拒否」となります。逆にした場合、「denyで指定した条件に該当する場合は拒否だけど、やっぱりすべて許可」となり、アクセス制限されません。
  • ユーザーエージェント(User-Agent)
    ユーザーエージェントは偽装が可能なため正確には判定できません。このため、正常なアクセスなのに拒否する可能性があります。
その他
  • 有効の範囲
    「.htaccess」ファイルが置かれたディレクトリとその配下の全てが、アクセス制限の範囲となります。「htaccess留意事項」も合わせてご確認ください。
  • Apacheのアクセス制御詳細
    詳細につきましては、「http://httpd.apache.org/docs/2.0/ja/howto/auth.html」でご確認ください。
運営会社 : 株式会社シーマン - 個人情報保護方針
当社無料サービス : サーバー監視 - 写真・画像の加工サービス - QRコード作成 - ファイル暗号化 - ブラウザキャプチャ
Copyright (C) 2010 Cman Corporation. All Rights Reserved.