.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)から見た絶対パスを書く必要があることに注意。

Home

Tips

ページのトップへ戻る