ベーシック認証をかける方法は色々あって何が正しいのか、簡単なのはどんな方法なのか分からなくって、
phpが使えるサーバーの場合に使える方法を調べたので備忘録として記事化。
1. サーバーの絶対パスを探る
以下のコードをテキストエディタにコピペしてファイル名をindex.phpとして保存、ベーシック認証をかけたいフォルダにUPします。
<?php $cwd = getcwd(); $reqfile = strrchr($_SERVER["REQUEST_URI"], "/"); $urilen = strlen($_SERVER["REQUEST_URI"]); $reqfilelen = strlen($reqfile); $reqdir = substr( $_SERVER["REQUEST_URI"], 0, $urilen - $reqfilelen ); $current = $_SERVER["HTTP_HOST"] . $reqdir; echo "<p>カレントディレクトリの絶対パス:$cwd<</p>"; echo "<p>カレントURL: http://$current/</p>"; ?>
その後、そのindex.phpにアクセスすると1行目に絶対パスが表示されます。
下の行のアドレスは実際に公開されるアドレスです。
2. htpasswdとhtaccessを作成
htaccessの簡易作成ツールのhtaccessEditorで設定を選んでIDとパスワードを設定します。
http://www.htaccesseditor.com/
ファイル一覧の拒否 | する |
ベーシック認証のSTEP1 | IDとパスワードを入力後「.htpasswdを作成」で暗号化したものが下に出てくるので、 それをテキストエディタにコピペしてhtpasswd.txtとして保存します。 |
ベーシック認証のSTEP2 | 先ほど調べた絶対パスをコピー&ペーストして後ろに/.htpasswdと入力します。
ex) /home/virtual/test/.htpasswd |
以上の設定を完了して、下のテキストエリアの中のコードをテキストエディターにコピペして、htaccess.txtとして保存します。
2. htpasswdとhtaccessのアップロードと名前の変更
htpasswd.txtとhtaccess.txtをFTPソフトを使ってベーシック認証をかけたいフォルダにUPします。
UPした後は、htpasswd.txtを.htpasswdに、htaccess.txtを.htaccessにそれぞれ変更します。
以上で完了です。
あとは.htpasswdと.htaccessのファイルの属性値を604にしておくとセキュリティ上いいらしいです。
参考にさせていただいたサイト
http://tsuzuki.tm.land.to/basic/index.html