htaccess「特定のユーザーエージェントを規制する」

 

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

あなたが使っているインターネットを見るソフト「ブラウザ」はネットにアクセスする度に
ユーザーエージェント(以下:UA)というものを送信しています。これは「○○というソフトを使って接続していますよ〜」と
教えているわけです。携帯ブラウザのアクセスならば「KDDI-SN32 UP.Browser」といった表示がされますし
IEを使用しているなら「MSIE/7」といった表示がされるでしょう

 

何に使えるのか

例えば、検索エンジンが何度も自分のサイトを訪れてカウンターを無駄にあげていくのが嫌なら
検索エンジンもUAを出していますから、そのUAを規制すればいいわけです。
その他には、指定したブラウザしかうまく動作しないサイトだったら、他のブラウザを遮断するなど
にも使えます(本来なら全てのブラウザで対応させないといけないんですけどね・・。)

またUAはクライアントからの「自己申告」なので偽装することができます。
なのでUAを使って荒らしの規制などはできません。UAでのサイト誘導は紳士に使いましょう。

検索ロボットの制御は「robots.txt」の方も有効なのでそちらも確認しておくと良いです。

 

使い方

指定したUAのみ許可する

SetEnvIf User-Agent "MSIE" let_me_in
Order Deny,Allow
Deny from all
Allow from env=let_me_in

この場合UAに「MSIE」という文字列が含まれていたらそれを弾きます。
Envは環境変数という意味、Setは設置、Ifは「もしも」ですね。

SetEnvIf User-Agent "MSIE" → もし環境変数「UA」に"MSIE"という文字列が含まれていたら「let_me_in」をセットする

Deny from all →
 一旦全てのアクセスを禁止する

Allow from env=let_me_in → 「let_me_in」がセットされていたら通信許可する


という流れになります。

 

UAの使い方は紳士に

先ほどの述べたようにUAは紳士に使用してください。
例えば「自分の使っているブラウザ以外で観られたらちゃんとしたデザインになっているかどうか
わからないし禁止しておこう」
といった紳士的でない発想は非常にまずいです。

人がきてなんぼのWebサイトですのでむやみにUAで規制するものではありません。
じゃあ使い道は?と聞かれそうですが。最近は「NDS」や「PSP」等の小型ゲーム機でもネットを観る
機会がでています。それらにもUAの情報は発信しているので、そのUAを判断して表示するページ
を小型ゲーム機が観やすくなるページに可変する。といった用途が「紳士的」だと私は思います。
(まぁhtaccessでできる領域ではないと思いますが・・・UAの使い道の話ですので。)

PSPのUA  Mozilla/4.0 (PSP (PlayStation Portable); 2.00)

 

このカテゴリのその他の記事