アクセス制限
見られたくないディレクトリを閲覧不可にする
ダミーのindex.htmlを置く
- ディレクトリ名が指定された際に表示されるファイルが index.html なら、 本来のトップページは別のファイル名にしておいて、ダミーの index.html ファイルを置いておく
そうすれば、少なくとも robots.txt を見ただけでは閲覧されたくないページにはアクセスできません
「.htaccess」ファイルを使う
特にトップページのようなものが存在しない場合は、 ディレクトリ内の一覧が表示されてしまいます。
《サーバがApacheだった場合 》
.htaccessファイルを使って、ファイル中に
Options -Indexes
と記述しておけば、ディレクトリ内のファイル一覧が表示されるのを防げます。 ブラウザには、403 Forbidden のエラーメッセージが表示されます。
robots.txtで指定したディレクトリ以下は見せない
例えば、次のようなディレクトリ構造だったとします。
「private 」と「work」の2つのディレクトリを秘密にしておきたいとすると、robots.txt には、次のように記述することになります。
User-Agent: *
Disallow: /private/
Disallow: /work/
これだと「private 」と「work」がディレクトリが存在することが分かってしまいます。
そこで、ディレクトリ構造を、次のように変えます。
これなら「secrets」ディレクトリだけを隠せば良いので、robots.txt は、次のようになります。
User-Agent: *
Disallow: /secrets/
secrets ディレクトリには、ダミーの index.html ファイルを置いておくなどして、ディレクトリの中身が見えないようにしておきます。
.htaccessを使ったアクセス制限方法(基本認証)
限定した人々にのみ公開したいコーナーを作りたいときなど、 IDとパスワードを使ってアクセス制限を行います。
基本認証を施す手順
「.htaccess」ファイルを作る
.htaccessファイルの中身
「.htaccess」ファイルの中には、次のように記述します。
AuthUserFile /Applications/MAMP/htdocs/フォルダー名/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
Require valid-user
■AuthName
何でも好きな文字を記述して構いません。
実際には、図の赤丸で囲った部分などに表示されます。
(※日本語文字列を使うと、Internet Explorer以外のブラウザでは文字化けしてしまいます。半角英数記号のみ使いましょう。)
■AuthUserFile
「IDとパスワードを格納したファイル」の格納場所をルートパスで記述します。
とりあえず、「.htaccess」ファイルを置くディレクトリと同じ位置に passwd.dat というファイル名で置くと仮定して記述しておけば良いでしょう。
※実際に使う際には、ウェブ上からはアクセスできない位置に置くのが望ましいです。
IDとパスワードを格納したファイルを作る
「.htaccess」ファイル内の「AuthUserFile」項目で指定したファイル(=IDとパスワードを格納したファイル)を作成します。
このファイルは、1アカウント1行で構成されていて、
ID名:暗号化されたパスワード
という形式になっています。 パスワードは暗号化されていますので、直接ファイルの中身を閲覧しても、オリジナルのパスワードは分かりません。
suzuki:XkB8Ou3kAcODe
yamada:5dHw0u9s4TltI
sato:A0e7PvhEdWyvE
上記のサンプルでは、suzuki, yamada, sato の3つのIDが格納されています。
これは暗号化されたパスワードです。
※「XkB8Ou3kAcODe」のような文字列はパスワードを暗号化したものであって、「XkB8Ou3kAcODe」というパスワードなのではありません。
実際にファイルを作成するには
この「IDとパスワードを格納したファイル」を作るには、htpasswd というコマンドを使います。
このファイル自体はテキストファイルですが、パスワードを暗号化しなければなりませんのでテキストエディタではなくコマンドを使って作ります。
ローカルでのBasic認証
MAMP
- 「.htaccess」をDreamweaver上で作成(MacはUnixのため、Finder上では見えません。)
- 配置場所は、サイト管理のroot階層
記述内容
- 最終行の改行も含める
AuthUserFile /Applications/MAMP/htdocs/フォルダー名/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic Require valid-user
- ジェネレータを使って「暗号化されたパスワード」を取得します
- ウェブ上で簡単に作成できるサービス
- 「.htpasswd」を作成し、「暗号化されたパスワード」を記述します
- 「.htaccess」と同じ階層におきます
- OSを再起動しないと認証されないので注意しましょう