Basic(ベーシック)認証の簡単な掛け方 phpが使えるサーバの場合

ベーシック認証をかける方法は色々あって何が正しいのか、簡単なのはどんな方法なのか分からなくって、
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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA