.htaccessってな〜に?
.htaccessでの検索よけはサイト全体にバリアを張り、ロボットを排除する方法です。
そもそも、.htaccessとは何なのか。
サーバをフォルダ単位で制御するファイルで、
非常に乱暴な言い方ですがアクセス制限をかける時に使います。
名前が「.htaccess」なだけで、その正体は普通のテキストファイルですのでメモ帳で作成可能です。
ロボット検索よけに利用した場合、META、robotx.txtとは全く違い非常に強力です。
METAタグとrobots.txtは検索ロボットに「お願い」して見逃してもらっている状態ですが、これはロボットを強制的に排除します。
.htaccessはロボット排除だけでなく、パスワードをかけたり、リンクを制限したり、
困った人間を立入禁止にしたりととても便利です。
欠点はとっつきにくい事と、サーバを選ぶと言う事でしょうか。サーバについては
無料サーバの説明や、有料サーバの説明のページを参考にして下さい。
.htaccessの壁の内側に入れておけば、METAやrobots.txtを入れ忘れていても.htaccessが弾いてくれます。しかし .htaccessで拒否している以外のロボットが来るとすんなり入れてしまうので、やはりrobots.txt、METAタグとの併用がおすすめです。
どんな事に使うのか
.htaccessは同人サイトでは以下のような使われ方が多いようです。
- 検索ロボットのアクセス制限(UAによる制限)
- 困ったさん・荒らしのアクセス制限(IPによる制限)
- 特定の言語圏のアクセス制限または許可(ブラウザの使用言語による制限)
- 裏ページのパスワード制限(Basic認証)
- ディープリンク禁止・画像の直リンク禁止(リファラによる制限)
その他、いろいろ出来ます。
私は.htaccessに関してせいぜいサンプルを見てカスタマイズする程度の腕前です。
ここを書くにあたって色々調べはしましたが、情報に誤りが無いとも限りません。
まずは下記のサイトなどに目を通す事をおすすめします。
- ミケネコの htaccess リファレンス
- .htaccess実践活用術
- さくらインターネット非公式FAQ(.htaccessページに多数のサンプル有)
- サルにもわかる正規表現入門(.htaccessは正規表現をよく使うので一応)
その前にロボットの正体について
その前にとりあえず、そもそも「ロボット検索」の「ロボット」とは何なのか。
検索ロボットは「クローラー」「スパイダー」などとも呼ばれ、
常にWEBを巡回し、巡回したウェブサイトの情報をデータベース化するプログラムです。
そんな説明だけ聞くと凄そうですが、実はレンタルやCGIのJavaScriptを使うアクセス解析では捕捉できないだけで、普通にサイトを訪問しているお客さんに過ぎません。
有料サーバで見れるサーバの生ログならクローラーの訪問を確認可能です。
代表的なものを挙げてみます。
- Googleのクローラー
- Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
- Yahooのクローラー
- Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
- MSNのクローラー
- msnbot/1.0 (+http://search.msn.com/msnbot.htm)
上記の「Mozilla/5.0〜」と言う部分が、各クローラーがサーバに対して名乗った「名前」です。
この「名前」をさして「ユーザーエージェント(user agent。俗にUA)」と言う言葉が使われています。
まあ、単純にユーザーエージェント(UA)=ロボットやブラウザの名前。正体。と覚えてしまってかまいません。
ちなみに、UAは(訳あって隠していない限り)全てのブラウザに存在します。
JavaScriptがオフになっていないなら、下にあなたのUAが表示されている筈です。
.htaccessでのロボット弾きはこのUAで判別して出入り禁止をかけるか、
ロボットのIP(プロバイダ)で判別して出入りを禁止する作業です。
ロボットがサイトに入れなければ、どんな検索エンジンといえでも、そのサイトの情報を取得する事ができません。
つまり検索結果として提示する事が不可能になると言う事です。
たとえば、Googlebotをアクセス禁止にしてしまえば、Googleはあなたのサイトの内容を取得する事が出来なくなりますから、
Googleでヒットする事はまず無くなります。
また、リファラー(リンク元)で判定して制限をかける事も可能ですので、
万一サイトがGoogleにインデックスされてしまっても「google.com」から来た人を弾けば、だいたいブロックできるでしょう。
そうやってリンク元で制限をかけている間に、.htaccessの設定を見直してください。
設置方法
設置方法と記述例については次のページで説明します。
→【.htaccess 設置と記述例】