メニュー

小金井にあるWEB制作会社の備忘録

MEMORANDUM

.htaccessを使用して指定するディレクトリごとにベーシック認証のID・パスワードを設定する

.htaccessを使用してベーシック認証を設定する場合、設定したいページ(ディレクトリ)毎にファイルを設置すれば良いのだけれど、パラメータから生成した仮想ディレクトリの場合に設置が難しいことと、多くなりすぎると管理がしずらくなるため一元化した時の実装方法をメモ

.htaccess

Authtype Basic
AuthGroupFile /dev/null

<If "%{REQUEST_URI} =~ m#^/○○○○/△△△△/dir1/#">
AuthUserFile /○○○○/.htpasswd_user1 //フルパス
AuthName "Please enter your ID and password"
Require valid-user
</If>

<If "%{REQUEST_URI} =~ m#^/○○○○/△△△△/dir2/#">
AuthUserFile /○○○○/.htpasswd_user2 //フルパス
AuthName "Please enter your ID and password"
Require valid-user
</If>

パスワード用のファイル(.htpasswd_user1、.htpasswd_user2)をそれぞれ用意し、全てのファイルをホームページディレクトリの直下に設置。
「IF」を使用してディレクトリごとに設定を切り分けています。

尚、パスワードを1種類にして流用する場合は「SetEnvIf」を使用して、対象ディレクトリのみに制限をかけることも可能。

.htaccess

Satisfy Any
AuthType Basic
AuthUserFile /○○○○/.htpasswd //フルパス
AuthName "Please enter your ID and password"
AuthGroupFile /dev/null
SetEnvIf Request_URI "^/○○○○/△△△△/dir1/" auth_dir1
SetEnvIf Request_URI "^/○○○○/△△△△/dir2/" auth_dir1

Require valid-user
Order Allow,Deny
Allow from all
Deny from env=auth_dir1

また、ファイル単位で指定したい場合は下記。

.htaccess

<Files △△△△.php>
AuthUserFile /○○○○/.htpasswd //フルパス
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
</Files>

ワードプレスの管理画面のみにベーシック認証を設定したい場合はファイル名に「wp-login.php」を指定します。

RANKING

人気記事

同一カテゴリーの記事