スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

.htaccessってなーに?

検索避け(検索除け)最強手段、.htaccessについて。
一般的なMETAとrobots.txtの検索よけについてはこちらの記事になります
.htaccessとは、すごーく乱暴な言い方をするとアクセス制限をする時に利用するファイルです。
「.htaccess」と言う名前を見ると、なんだか難しそうですが、実際には普通のテキストファイルですからメモ帳などで作成可能です。ドットエイチティーアクセスと読みます。
参考:ミケネコの htaccess リファレンス:.htaccess ファイルの使い方

検索よけに利用する場合、ユーザーエージェント(UA=ブラウザ・ロボット。またはその名前)やIPで特定のロボットを指定し、それの出入りを禁止すると言った使い方をします。

どんな事に使うのか

.htaccessは同人サイトでは以下のような使われ方が多いようです。

  1. 検索ロボットのアクセス制限(UAによる制限)
  2. 困ったさん・荒らしのアクセス制限(IPによる制限)
  3. 特定の言語圏のアクセス制限または許可(ブラウザの使用言語による制限)
  4. 裏ページのパスワード制限(Basic認証)
  5. ディープリンク禁止・画像の直リンク禁止(リファラによる制限)

その他、いろいろ出来ます。

私は.htaccessに関してせいぜいサンプルを見てカスタマイズする程度の腕前です。この記事を書くにあたって色々調べはしましたが、情報に誤りが無いとも限りません(間違ってたら教えてください!)。
まずは下記のサイトなどに目を通す事をおすすめします。

ミケネコの htaccess リファレンス
.htaccess実践活用術 
さくらインターネット非公式FAQ(.htaccessページに多数のサンプル有)
サルにもわかる正規表現入門(.htaccessは正規表現をよく使うので一応)

検索よけで考えるなら、Googlebot(Googleのクローラー)をアクセス禁止にしてしまえば、Googleはあなたのサイトの内容を取得する事が出来なくなりますから、Googleでヒットする事はまず無くなります。
この設定が上手く働かず、万一サイトがGoogleにインデックスされてしまっても、リンク元情報(リファラ)に「google.com」を含む訪問者をアクセス禁止にしてしまえば、google経由で来る人をだいたいブロックできるので、「検索にひっかかったから移転!」などと慌てる必要は少なくなります。リンク元でブロックしている間に.htaccessを見直して対象クローラーの設定を改善すればOKです。後は消えるのを待ちましょう。
(Googlebotを例に出しましたが、googleは行儀が良いのでMETAやrobots.txtに従ってくれます。念のため)
オンラインブックマークがイヤだと言うのなら、リンク元制限をしてしまえば良いのです。(完璧ではありません。詳しくは後述)

実際の書き方

まずは設置方法。
OSにもよりますが、「.htaccess」という「.(ドット)」で始まる名前のファイルはパソコン上で見えなくなってしまう場合があります。なので、

  1. 「htaccess.txt」と言う名前でファイルを作成
  2. 「htaccess.txt」をFTPでサーバに転送
  3. FTPソフトで「htaccess.txt」を「.htaccess」と言う名前に変更

当然、中身が書かれている必要がありますが、.htaccessの設置自体はこれで終了です。

では肝心の.htaccessの中身は以下のようになります。

SetEnvIf User-Agent "Googlebot" shutout
SetEnvIf User-Agent "Slurp" shutout
SetEnvIf User-Agent "msnbot" shutout

SetEnvIf Referer "http://abc.com" shutout
SetEnvIf Referer "http://exsample.ne.jp" shutout

order allow,deny
allow from all
deny from env=shutout(ここに改行を必ず)

口語訳

ユーザーエージェントがGooglebotならshutout
ユーザーエージェントがSlurpならshutout
ユーザーエージェントがmsnbotならshutout

リンク元がhttp://abc.comならshutout
リンク元がhttp://exsample.ne.jpならshutout

allow(許可)deny (禁止)の順番で処理
全ての立入を許可(allow)
shutoutに当てはまる場合は禁止(deny)

実際にはこんな感じになります。(上記の指定にセキュリティをやや強化した形です)
よく分からなければこのサンプルを右クリックでダウンロードし、FTPでアップロード後、名前を「.htaccess」に変更してみて下さい。

  1. 最終行は必ず改行してください(重要!)
  2. 「shutout」の部分は「dame」でも「kinshi」でも好きに変更可能です。
  3. 「SetEnvIf」を「SetEnvIfNoCase」とすると大文字と小文字を区別しなくなります。
  4. もし、「shutout」指定を取り消したい相手が居るなら、その条件を指定して「!shutout」のように「!」をつければ「shutout」指定を解除してくれます。
    例: SetEnvIf Referer "http://exsample.ne.jp" !shutout
       リンク元がhttp://exsample.ne.jpならshutoutでは無い
  5. 「order allow,deny」と「order deny,allow」で効果(と言うか判断順序)が変わりますから気をつけて下さい。
    allow from all」を指定して「order deny,allow」とすると全てを許可してしまいます。

.htaccessは設置したフォルダに含まれるサブフォルダ全てに影響を与えます。
http://exsample.com/.htaccess と設置した場合
http://exsample.com/html/
http://exsample.com/html/txt/
などまでその影響下に入ります。 サブフォルダの中に新たに.htaccessを設置すればそのフォルダはその.htaccessの設定に従います。
サブフォルダに新たに.htaccessを設定した場合、上位フォルダの.htaccessの設定が引き継がれますので、そこを考慮してサブフォルダの.htaccessを記入すると良いでしょう。(つまり上位フォルダの.htaccessのロボット指定はサブフォルダにも受け継がれる)

ロボットをどうやって指定しよう?

上記の例では「Googlebot=Googleのロボット」「Slurp=Yahooのロボット」「msnbot=MSNのロボット」を大雑把に弾いていますが、実際には他にも沢山のロボットが存在します。
なので、いかにこれらの情報を獲得し、人間の訪問者を巻き添えにしないよう指定するかが重要になって来ます。まあ、大体のロボットは独自の名前(UA)を名乗りますから、それで指定すればなんとかなりますが。
一番確実なのは自分のサーバの生ログをチェックしてみる事です。
後は下記のようなサイトを参考にしてみると良いと思います。

検索エンジンのロボットのユーザエージェント、クローラ・Bot
検索避け支援wiki

検索避け支援wikiがスゴイですね…。
どこまでやるかの判断はお任せしますが、長くなるほどサーバに負担がかかることを覚えていて下さい。

ちなみに検索避け支援wikiにある
> Deny from 74.6.0.0/16
と言うような指定は、平たく言うとプロバイダで弾いているような感じです。
参考  ミケネコのhtaccess リファレンス: ホスト/IP 制限
「Deny from exsample.com」 などとホスト(英数字)で指定すると負担が大きいので、IP(数字)での指定が理想なのです。一時的な人間相手のアク禁ならともかく、長く続けるロボット相手のアク禁では、特に負担には気を配った方が良いでしょう。
が、IPはその都度微妙に違っていたりするので、指定するのがなかなか難しい。
そこでそのばらつきの範囲を効率よく指定しているのが「Deny from 74.6.0.0/16」です。

では「Deny from 74.6.0.0/16の/16って何。どう効率的なの」と言われると…。
これは私のスキルでは説明できません。下記サイトなどを参考にしてください。
槻ノ木隆の「BBっとWORDS」ネットマスクの仕組み
む、難しい!まあ、同人屋は「Deny from 74.6.0.0/16といっても74.6.0.0〜74.6.0.16のような単純なものじゃない」くらいに分かっていれば良いのではないかと思います(私はその程度です。情けない…)。

これで検索よけは完璧?

ここまでやれば検索よけは完璧か?といえば、残念ながら完璧ではありません。ですがそれなりの精度は期待できます。
より完璧を目指すのであれば、日々生ログのチェックを欠かさず、検索エンジンクローラーに関する情報に気を配り、こまめに.htaccessを修正する必要があります。
IEのUAを偽装するロボットだって存在します。
これはもう、終わり無きロボットとの戦いの幕開ですね。

検索よけにそこまで手間をかけるかどうかの判断はお任せします。個人的には、よほど厳しいジャンルでも無い限り、METAとrobots.txtで十分だろうと思っています。(多少ひっかかるけどね)
ただ、最近多い「検索エンジンにひっかかったから移転」な人はそこまでやる必要があるので、えーと、まあ、がんばって下さい。

確かに導入すれば、検索エンジンにMETAでお願いして見逃して貰っている状態から、こちらが決定権を持つ状態になりますから、安心感がありますね。
ロボットに限らず、ちょっとご遠慮願いたいものは色々発生しがちだし、.htaccessは便利なものです。

ちなみに、.htaccessでブロックしていないロボットは普通に入れてしまいます。ですからMETAタグとrobots.txtと併用してください。たいがい新顔のロボットはrobots.txtなど無視するものですが、やれる事はやっておきましょう。

そうそう、リファラ(リンク元・参照元)制限に関して注意があります。
ノートンのようなセキュリティソフトはリファラを伝えない設定になっていますので、それを使っている相手には通用しません。 そうでなくとも、URLをコピーペーストして来られてしまうと、リファラが伝わらないので簡単に突破されてしまいます。
なので完璧にリンク元を制限する事はできません。しかし、うっかり迷い込む人は確実に減るでしょう。
(本質とずれますが、リファラを伝えない人は当然アクセス解析にもリファラを残しません。つまり管理人がリンク元でやきもきする事は無くなるでしょう)

それとも、こんな程度じゃ満足できないですか?迷い込む人はゼロにしたい?
そう言う人はBasic認証を導入する事をオススメします。
手間もかからず、同時に心の平安も手に入ります。

お前も.htaccessでよけてるくせにMETAやrobots.txtでかまわない、とか何だよって言われそうですね。
言い訳すると私が.htaccessを導入したのは、たまたま私のサイト名が海外の芸能人(団体?)の名前とかぶってしまって、明らかに何か勘違いした外国人からメールが来たのがきっかけでした(別にトラブった訳じゃないけど、その名前が原因で迷い込む外国人が多かったから色々面倒だと思ったのですよ)。
更に面倒な事にその名前がURLにも入っていたので、URLの一部も検索に載らないように徹底して隠れた時期があったのです。サーバのお金払ったばっかりで移転したくなかったし。
現在はそこから移転しちゃったんですが、惰性で.htaccessを入れている状態です。

07/07/10 
裏サイトオーナーのためのSmall Tips が見れなくなってしまった事と、予想より見に来る人が多いので詳細に書き直しました。
うんざりする長さだな。 分かりますかね。
検索避け支援wikiが便利なので、そこの例文を利用しやすいように.htaccessのサンプルを書き直しました。

スポンサーサイト

コメント

質問させてください
はじめまして
サイトを開設・運営するに当たって、こちらのブログで色々と勉強させていただいています。
その中の.htaccessについて分からないことがあるので質問させてください。

サイト全体にアクセス制限をかけようと考えています。
その際の,htaccessの設置場所、転送先がよくわかりません。

アップロードする際(FFFTPを利用)に、サーバー(さくら)さんから指定された、「ホストの初期フォルダ www」のすぐ下に .htacceeファイル、indexファイル、ホームページ用のフォルダ、と並べても効果はないのでしょうか?

さくらさんではIPアドレス、URL、ホストなどを入力してすれば.htaccessファイルを作成してくれるツール(?)が提供されているのですが、それを使ってもアクセス制限ができませんでしたので、置き場所の悪さが原因なのかな?と思っています。(サーバーさんに問い合わせたのですが、.htaccessのサポートは対象外とのことで、回答がいただけませんでした)

うまく説明が出来ているか、ちょっと自信がありませんが・・・
回答よろしくお願いします。


Re 質問させてください
はじめまして。

さくらならwwwフォルダのすぐ下に.htaccessを設置すればサイト全体に制限をかけられる筈です。wwwのすぐ下にindex.htmlがあっても同じです。個人サイトで使っているさくらで自分をアク禁にしてみたところ問題なく動きました。

もしかしたら、ブラウザのキャッシュが残っていて.htaccessが動いていないように見えるのかも知れません。キャッシュを空にする、リロードする、別なブラウザで試してみるなどをしてみてください。

さくらのツール、初めて知りました。こんな機能があったんですね。
.htaccessの中身を見ないとなんとも言えないのですが、もしかしたら

Order allow,deny
Allow from all
Deny from 0.0.0.0(アクセス禁止IPやホスト)

としなければならないところを、

Order deny,allow
Allow from all
Deny from 0.0.0.0(アクセス禁止IPやホスト)

となっている可能性もあります。「Order deny,allow」だと「Allow from all(全部許可)」が最終判断になりますから、アクセス制限をかけたつもりでも入られてしまいます。
さくらのツールだと
□ 特定のアクセスのみに許可を与える(Order allow,deny)
□ 特定のアクセスのみに制限を行う(Order deny,allow)

みたいですね。これで解決すると良いのですが。
アクセス制限できました
ようやく.htaccessの設置が出来ました。
やはりご指摘いただいた許可と禁止を間違えていたためにアクセス制限がかかっていませんでした。
(一度ツールを使って失敗してからは、自分でファイルを作っていたものですから・・・)
本当に素早く丁寧な回答をありがとうございました。






良かったです
成功おめでとうございます。
allow,denyの順番は見落としがちですよね。以前、私も分からなくて延々悩んだ事があります。
.htaccessは一語一語丁寧に見る気にはなれないし、またさくらのツールの表現もわかりにくい(笑)
とりあえず、お役にたてたようで幸いです。

コメントする

管理者にだけ表示を許可する

Template Designed by DW99

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。