|
htaccess解説/アクセス制限(スマートフォン・携帯)
携帯電話専用サイトでパソコンからのアクセスを拒否するときや、パソコン専用サイトで携帯電話からのアクセスを拒否するときなどに、htaccessを利用することができます。 ただし、モバイルブラウザ(Iモードなど)と携帯フルブラウザを完璧に識別することは難しく、あまりお勧めできません。
 |
実際に携帯電話からホームページにアクセスした場合に付加されている情報は、当社「IPアドレス確認」サービスでご確認いただけます。
(cmanで作成しました) |
1携帯電話の帯域(IPアドレス)でアクセスを許可する
携帯電話の各キャリアは発信する帯域(IPアドレスの範囲)を公開しているため、発信元(アクセス元)のIPアドレスを判定しアクセスの許可/拒否を設定することができます。
「.htaccess」ファイル この設定で、docomo,au,softbankの携帯電話からのアクセスのみ可能となります。
order deny,allow
deny from all
#docomo
allow from 210.153.84.0/24
allow from ・・・(下記docomo帯域のIPアドレス全て)
#au
allow from 210.230.128.224/28
allow from ・・・(下記au帯域のIPアドレス全て)
#softbank
allow from 123.108.237.0/27
allow from ・・・(下記softbank帯域のIPアドレス全て)
| 構文 |
意味 |
| order |
拒否と許可の見る順番を指定している allow:許可する、deny:拒否する 例は、「拒否(deny)」→「許可(allow)」の順に見る |
| deny |
「拒否」する条件を指定 例は、「from all」としてすべて拒否としています。 |
| allow |
「許可」する条件を指定 例は、以下を意味しています。
・IPアドレス「210.153.84.0/24」からなどのアクセスを許可しています。(「/24は範囲を表しています) |
【注意事項】
- allowとdeny
orderの順番に注意してください。上記では「すべて拒否だけどallowで指定した条件に該当する場合は許可」となります。逆にした場合、「allowで指定した条件に該当する場合は許可だけど、やっぱりすべて拒否」となり、全てのアクセスが拒否されてしまいます。
- IPアドレス
携帯各社が利用しているIPアドレスは、下記「携帯キャリアの帯域」でご確認ください。
IPアドレスは、定期的に追加などがありますのでご注意ください。
|
携帯キャリアの帯域
2.携帯電話のUser-Agentでアクセスを許可する
多くのブラウザで、ユーザーエージェント(User-Agent)にOSやブラウザの情報が含まれています。htaccessでこの情報を利用することによりアクセスの制御(許可/拒否)が可能です。
(注意)ユーザーエージェントは偽装される可能性があるため、正確な判定はできません。
「.htaccess」ファイル この設定で、docomo,au,softbankの携帯電話からのアクセスのみ可能となります。
SetEnvIf User-Agent "DoCoMo" ok_docomo
SetEnvIf User-Agent "UP.Browser" ok_au
SetEnvIf User-Agent "SoftBank" ok_softbank1
SetEnvIf User-Agent "Vodafone" ok_softbank2
SetEnvIf User-Agent "MOT-" ok_softbank3
SetEnvIf User-Agent "J-PHONE" ok_softbank4
order deny,allow
deny from all
allow from env=ok_docomo
allow from env=ok_au
allow from env=ok_softbank1
allow from env=ok_softbank2
allow from env=ok_softbank3
allow from env=ok_softbank4
| 構文 |
意味 |
| SetEnvIf User-Agent |
User-Agentの条件を正規表現で記載します。 例は、「DoCoMoを含む」の条件などとなります。 条件に該当するときに「ok_docomo」などが真(true)となります。 正規表現のエスケープが必要です。 |
| order |
拒否と許可の見る順番を指定している allow:許可する、deny:拒否する 例は、「拒否(deny)」→「許可(allow)」の順に見る |
| deny |
「拒否」する条件を指定 例は、「from all」としてすべて拒否しています。 |
| allow |
「許可」する条件を指定 例は、「SetEnvIf User-Agent」で指定した条件に該当しているかを判定しています。 該当する場合に「許可」となります。 |
【注意事項】
- allowとdeny
orderの順番に注意してください。上記では「すべて拒否だけどallowで指定した条件に該当する場合は許可」となります。逆にした場合、「allowで指定した条件に該当する場合は許可だけど、やっぱりすべて拒否」となり、全てのアクセスが拒否されてしまいます。
- ユーザーエージェント(User-Agent)
ユーザーエージェントは偽装が可能なため正確には判定できません。このため、正常なアクセスなのに拒否する可能性があります。
携帯各社のユーザーエージェント情報は、下記「携帯キャリアのユーザーエージェント」でご確認ください。
|
その他
|