はじめに
限定共有したいサイトや開発中のサイトを他人に見られたくない場合に使えますね!
とてもわかりやすくまとめられており、この手順に沿ってやるとうまく行くはずです!
エラーが出た時の原因や対応方法についても書かれているので、まず問題ないでしょう。
では、早速挑戦。
実装
ファイル構成
コードを書いて行く前に、まずはこのようなファイルを用意します。
- トップ画面の
idex.html
- Basic認証定義する
.htaccess
- IDとPasswordを定義する
.htpassword
の3つです。
index.htmlファイル
.htaccessファイル
このようにとてもシンプルで、4つの定義だけで大丈夫です。
AuthType
=> Basic
AuthName
=> [なんでもOK]
AuthUserFile
=> [.htpasswdファイルの場所]
require valid-user
ここで注意が必要なのが、AuthUserFile
。サーバーにアップロードする際に自分がどこのディレクトリに置いたかで、記述が変わってきます。これが間違えてるとエラーになります。
.htpasswdファイル
ファイルの中身
このファイルには、IDとPasswordの組み合わせを書いておきます。後ほど認証画面で入力する値はここと一致しなければなりません。
書き方はID:Password
です。
さて、ここでも注意点があるのですが、それはPassword
に関しては、暗号化しなければならないということです。
暗号化せずに書いて挑戦して見ましたが、認証されませんでした。
暗号化のために
画像のように、IDとPasswordを入れて、パスワード暗号化
ボタンを押すだけ。
このように一瞬で生成してくれます。
あとはこれをコピペでいいので、.htpasswd
ファイルに書きます。
サーバーへのアップロード
今回はさくらサーバー
を使って見ます。basicauth
というディレクトリを作り、その中に先ほどの3つのファイルをアップロードします。
そう、たったこれだけ。めちゃくちゃ簡単!
検証
さて、先ほどアップロードした先のURLへアクセスしてみましょう!
すると。。。
おーーー!!ちゃんとIDとPasswordを求められます!!
入力してみましょう!
おー!ちゃんと「テスト」という文字が入ったindex.html
ファイルが表示されました!
大成功!
エラーが出たら
先ほど.htaccess
ファイルのAuthUserFile
に設定する「ファイルの置き場所のパス」に注意が必要と書きましたが、実際に私もここで少しつまずきました。
先ほどは、./htpasswd
と画像では書いてありますが、もちろんこれではうまくいきません。サーバーにアップロードさせた際のディレクトリ構造に合わせる必要がありますね。
もし、間違ったパスのままサーバーへアップロードするとどうなるのでしょう?
こうなります。
エラー例
認証を求められるので、入力します。
合っているIDとパスワードを入れても、繰り返しこのように認証を求められてしまいます。
このように、繰り返し認証を求められる場合は、.htaccess
ファイルのAuthUserFile
に設定部分を疑いましょう。
対策
.htaccess
ファイルのAuthUserFile
に書くパスの部分ですが、サーバーへのアップロードの際に以下の部分を見てみましょう。
FileZillaの場合はここに、ディレクトリへのパスが出ますのでコピペしちゃえば楽ですね。
だいたい/home/ディレクトリ名/www/ディレクトリ名/・・・・
のようになるのではないでしょうか?
このようにするとうまくいきました。
最後に
このBasic認証に関しては、情報も多いので苦戦することはないでしょう。しかし、スクリーンショットとともに紹介している記事が見当たらなかったので今回まとめてみました。かなりハショッていますが、このくらいで本当にできちゃいますよー。