Apache .htpasswdでアクセス制限(特定ユーザー)

 例えば、www.mydomain.com/himitsu/以下を特定ユーザーやメンバーでアクセス制限したいとき。

 

■.htaccessファイルを作る

$ cd public_html/himitsu/
$ vi .htaccess

.htaccessの内容

AuthUserFile    /home/mydomain/pswd/himitsu.pwd
AuthGroupFile   /dev/null
AuthName        "HIMITSU"
AuthType        Basic

require valid-user

<Files .htaccess>
order deny,allow
deny from all
</Files>

 

■パスワードファイル himitsu.pwd を作る

パスワードファイルを作り、田中さんをユーザとして加える。(-cは、クリエイトなので初回のみ)

$ cd mydomain/pswd/
$ htpasswd -c himitsu.pwd tanaka
Adding user tanaka

New password:
Re-type new password:

 続いて、ユーザ鈴木さんを追加するときの作業。

 $ htpasswd himitsu.pwd suzuki

同様に、アクセス可能なユーザを追加していく。 

以上で、作業完了!

 

■うまくいかないとき

Apacheのhttpd.confの設定を確認する。

ファイル名の確認

AccessFileName  .htaccess

バーチャルホスト内でAllowOverrideを指定しているかを確認

<Directory /export/home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit Options Indexes
    <Limit GET POST OPTIONS PROPFIND>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS PROPFIND>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

変更した場合、Apacheの再起動を忘れずに…。