BASIC認証(.htaccess)設定方法

あるフォルダ以下のリソースを利用できるユーザーに制限をかけたい場合、.htaccess と .htpasswd による BASIC 認証を利用すると便利です。

1..htaccessファイルの作成

AuthUserFile /home/・・・・・・・・・/.htpasswd    (.htpasswdファイルのある場所を絶対パスで)
AuthGroupFile /dev/null
AuthName "サイト名等をここに"
AuthType Basic
require valid-user
記入例(ロリポップの場合)
下記のタグをコピーして.htaccessという名前のファイル名で保存する。
2..htpasswdファイルの作成

ユーザ名、パスワードを決めて
http://www.shtml.jp/htaccess/make_htpasswd.html
にアクセスして暗号化する。


ユーザ名:test
パスワード:test
の場合

test:teH0wLIpW0gyQ

となる。1組のユーザ名、パスワードを設定することも出来る。その場合は1組ごとに改行して指定する。
をコピーして、.htpasswdという名前で保存する。
.htaccess
.htpasswd
というファイルをBASIC認証したいフォルダにFTPでアップロードする。
作成したフォルダ(yyyの場合)
http://www.xxxx.jp/yyy/
にアクセスするとログイン画面が出てきたら半分成功、ユーザ名、パスワードを入れてログインできれば成功。
このyyyフォルダ内にあるファイルにアクセスする場合は認証が必要になります。またこのフォルダの下の下位のフォルダも認証が必要になります。
参考

1.絶対パスを調べる方法(phpが動くサイトの場合)
  下記のタグをコピーして「index.php」という名前で保存する

<?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>";

  調べたいフォルダにFTPにアップロードし、IEでアクセス(/index.php)
  するとフォルダの絶対パスを表示してくれる。

2.絶対パスを調べる方法(cgiが動くサイトの場合)
  ・一行目はサーバーによって書き換える。(#!/usr/bin/perlを)
  下記のタグをコピーして「index.cgi」という名前で保存する

#!/usr/bin/perl
print "Content-type: text/plain\n\n";

print "---- pwd ----\n\n";
$cwd = `pwd`;
print "$cwd\n\n";

print "---- SCRIPT_FILENAME ----\n\n";
print "$ENV{'SCRIPT_FILENAME'}\n";

exit;

  サーバーにFTPでアップロードしてパーミションを755に設定する
  IEでアクセス(/index.cgi)するとフォルダの絶対パスを表示してくれる。

戻る