.htaccess Memo
.htaccess を使ってユーザアクセスの制限を行う方法。
(httpd.conf で AllowOverride を All にしておく必要があります!)
::目次::
ホスト名によるアクセス制限
order によって、allow, deny の順番を決める。
ホスト名はIPアドレスでも可能。
完全なIPアドレスでなくても上流を指定すればよい。
(例えば 133.11.1.1 ~ 133.11.255.255 までを制限したいのであれば、deny 133.11 と書いておけばよい)
<Limit GET POST> order allow,deny allow from all deny from .foo.ne.jp </Limit>
パスワードによるアクセス制限
AuthUserFile はパスワードファイルの名前。
AuthName はダイアログボックスで表示される文字列。
require valid-user はパスワードファイルに登録されているユーザ全てに適応される。
特定のユーザのみにアクセス許可を与えたければ、「require user ユーザ名」とユーザ名を指定すればよい。
AuthUserFile /path/to/.password AuthGroupFile /dev/null AuthName "Please enter the password." AuthType Basic <Limit GET POST> require valid-user </Limit>
パスワードファイルの作り方
新しいユーザ hoge を作るのであれば、上記 .htaccess の設定であれば以下のようにする。
-c オプションは新しく .password ファイルを作成するので、二回目以降は必要ない。
$htpasswd -c .password hoge
ユーザのグループ分け
ユーザをグループ分けする場合は、次のようなグループファイル .group を作る(ファイル名は適当)。
Group1: hoge foo Group2: haaこのグループファイルを使って、グループごとにアクセス許可する場合は次のように .htaccess を書き換える。
AuthUserFile /path/to/.password AuthGroupFile /path/to/.group AuthName "Please enter the password." AuthType Basic <Limit GET POST> require group Group1 </Limit>
特定のファイルのみアクセス制限をかける
たとえば、hoge.txt へのアクセスに対してのみパスワードを要求するようにするためには以下のようにする(上記方法では .htaccess を置いたディレクトリ以下へのアクセスに対してパスワードが要求される)。
<Files hoge.txt> AuthUserFile /path/to/.password AuthGroupFile /dev/null AuthName "Please enter the password." AuthType Basic require valid-user </Files>
リダイレクト機能
サイトのドメインなどを変更した際に便利な機能。
例えば、http://www.hoge.com/movefrom/ 以下のファイルへのアクセスがあったときに、http://www.foo.com/moveto/ 以下にリダイレクトさせたい場合、.htaccess ファイルに以下のように記述する。
Redirect permanent /movefrom/ http://www.foo.com/moveto/
リダイレクト元のパスは、httpd のドキュメントルート(Document Root)から見た絶対パスを書く必要があることに注意。