秘密のページを見られないようにするには?
検索の対象にして欲しくないなら、robots.txt を置かないわけにはいきませんね。
では、robots.txt をブラウザで見られても、秘密のページを見られないように工夫しましょう。
■認証を使う
……これができるなら、そもそも robots.txt を用意する必要はないわけですが。
認証をかけることができるなら、かけておきましょう。何としても(不特定多数に)閲覧させたくない場合は、認証をかけるしかありません。
なお、基本認証をかける方法は過去の記事「基本認証でアクセス制限」でご紹介しています。
■ダミーのindex.htmlを置く
ディレクトリ名が指定された際に表示されるファイルが index.html なら、 本来のトップページは別のファイル名にしておいて、ダミーの index.html ファイルを置いておきましょう。 そうすれば、少なくとも robots.txt を見ただけでは秘密のページにはアクセスできません。
■.htaccessファイルを使う
画像の倉庫にしているなど、特にトップページのようなものが存在しない場合は、 ディレクトリ内の一覧が表示されてしまいますね。 ※サーバがApacheだった場合
.htaccessファイルを使って、ファイル中に
Options -Indexes
と記述しておけば、ディレクトリ内のファイル一覧が表示されるのを防げます。 ブラウザには、403 Forbidden のエラーメッセージが表示されます。
なお、「.htaccess」ファイルの作り方に関しては、記事「.htaccessファイルの作り方と設置方法」をご参照下さい。
■間にクッションを置く
例えば、次のようなディレクトリ構造だったとします。
ここで、private と work の2つのディレクトリを秘密にしておきたいとすると、robots.txt には、次のように記述することになります。
User-Agent: * Disallow: /private/ Disallow: /work/ |
これだと、private や work ディレクトリが存在することが分かってしまいますね。
そこで、ディレクトリ構造を、次のように変えます。
これなら、secrets ディレクトリだけを隠せば良いので、robots.txt は、次のようになります。
User-Agent: * Disallow: /secrets/ |
secrets ディレクトリには、ダミーの index.html ファイルを置いておくなどして、ディレクトリの中身が見えないようにしておきましょう。
これなら、隠しているディレクトリ名が分からないので、robots.txt を見られても隠しているディレクトリへはアクセスしようがありません。
おわりに
サーチエンジンのロボット(クローラー)は、必ずしも robots.txt の指示に従ってくれるとは限りません。 robots.txt を読んで指示に従うことは、「強制」ではなく「お願い」程度のものです。ですから、本当に隠したいページは、認証を使うしかないことを覚えておきましょう。
今回は、少なくとも robots.txt から、隠しておきたいディレクトリの存在がバレてしまうのを防ぐ方法をご紹介致しました。
robots.txt を使っている方々は、再度確認してみて下さい。
【関連記事】