技術資料

.htaccessでのBasic認証設定方法とユーザー管理

2007.08.06

error この記事は最終更新日から17年以上が経過しています。

Basic認証をかけるためには、.htaccessに記述する前に、認証用のユーザー名と暗号化されたパスワードの記述されたファイルを作成する必要があります。
SSHまたはtelnetでサーバーにログインし、任意のディレクトリに移動した後、以下のコマンドでパスワードファイルを作成します。

% htpasswd -c password.dat Amethyst
New password:password
Re-type new password:password
#-- 下記はレスポンス
Adding password for user Amethyst

password.datはパスワードファイル名。任意のファイル名を設定すること。
Amethystは設定するユーザー名。任意のユーザー名を設定すること。
passwordは設定するパスワード。任意のパスワードを設定すること。実際には入力したパスワードは表示されない。

上記作業が終わると、ユーザー名:Amethyst、パスワード:passwordのパスワードファイル password.dat が作成されます。

上記パスワードファイルにさらに別のユーザーを追加する場合は、htpasswdコマンドに -c オプションをつけずに実行すれば良いです。

% htpasswd password.dat Sapphire
New password:abcdefg
Re-type new password:abcdefg
#-- 下記はレスポンス
Adding password for user Sapphire

とすれば、さきほど作成したパスワードファイル password.dat にユーザー名:Sapphire、パスワード:abcdefgの情報が追加されます。

なお、htpasswdコマンドで作成したパスワードファイルのフォーマットは、
ユーザー名:パスワード(暗号化済)
という形式で1ユーザーにつき1行ずつ記述されるので、perlのcrypt関数等を利用して、cgiを経由して作成することもできます。
なので、telnetやSSHでのログインが許可されていないレンタルサーバー等を利用している場合も、こういうやり方をすればパスワードファイルは作成できます。

さて、パスワードファイルを作成したら、次はBasic認証をかけたいディレクトリに、以下を記述した.htaccessを設置します。

AuthUserFile    /home/amethyst/data/pass/password.dat
AuthGroupFile   /dev/null
AuthName        "Input Your Name And Password"
AuthType        Basic
<Limit GET POST HEAD>
require valid-user
</Limit>
AuthUserFile
先ほど作成したパスワードファイルのパスを指定します。
AuthGroupFile
グループファイルによる認証を行なう時に使用。
単にユーザー名とパスワードだけで認証を行なう場合は /dev/null (未定義)としておけばOK。
AuthName
ユーザー名・パスワード入力用のウィンドウに表示させるメッセージ。
スペースを含む場合はダブルクォーテーションで囲む必要がある。
2バイト文字を使用すると多分文字化けする。
AuthType
認証のタイプ。Basic認証をかける場合は Basic とする。
<Limit method>~~</Limit>
methodの部分に、認証をかけたいメソッドを指定。
GET,POST,HEADの各メソッドに対して認証をかけたい場合はGET POST HEADとする。
メソッドを指定しない場合は、<Limit>~~</Limit>は記述しなくて良いはず。
require
認証するユーザーを指定する。パスワードファイルに記述したユーザー全てに対して認証を行なう場合はvalid-userとする。
特定のユーザーのみを認証する場合は、そのユーザー名を記述する。上記の例の場合、Amethystと記述しておけば、ユーザー名Sapphireで正しいパスワードを入力しても、認証は通らない。

この.htaccessを認証をかけたいディレクトリに設置すれば、そのディレクトリ及び下位ディレクトリに対して、Basic認証が働くようになります。

.htaccessで特定のディレクトリのみ「/」を「/index.html」にリダイレクトさせる

2023.05.09

指定したディレクトリのみ、トップページへのアクセスを/index.htmlにリダイレクトさせる方法を紹介します。

.htaccess

.htaccessを使ったリダイレクト設定方法—URI変更時の対応を簡単に

2023.05.01

Webサイトの構成変更や移転時に便利なリダイレクト設定方法をご紹介します。.htaccessを使って、URIが変更になった場合でも旧ページから新ページへスムーズに転送できるように設定する方法を解説します。

.htaccess

IPアドレスでアクセス制限する方法を.htaccessで実装

2023.04.07

.htaccessを使って、特定のIPアドレスからのアクセスを制限する方法を紹介します。指定したIP以外のアクセスをブロックしたり、逆に特定のIPを拒否する方法も解説。さらに、Requireディレクティブを使った設定方法も合わせて紹介します。

.htaccess

さくらのレンタルサーバーでPHPを「.html」などの拡張子で実行する方法

2009.09.20

さくらのレンタルサーバーでは、PHPがCGIとして動作しているため、通常の.htaccess設定ではPHPを「.html」拡張子で実行できません。この記事では、特定の手順を踏んでPHPを動作させる方法を詳しく解説します。

.htaccess PHP

阿部辰也へのお仕事の依頼・お問い合わせ

お名前 *必須
会社名
メールアドレス *必須
電話番号
URL
お問い合わせのきっかけ
お問い合わせの内容 *必須
個人情報の取り扱いについて *必須 プライバシーポリシーをご確認いただき、同意いただける場合は「同意する」にチェックをしてください。

keyboard_double_arrow_up
TOP