ロボット対策の mod_rewrite に関する説明も参照せよ。
最新の更新: 1999年1月22日
前回の更新: 1998年3月31日
前々回の更新: 1998年3月9日
さらにそのまえの更新: 1998年2月19日
詳細については、apache のマニュアルなどを見て下さい。全部見るのは大変なので、 require directive, Module mod_access, Satisfy あたりを最初に見ると良いです。初心者の方は、ネットサーフレスキュー[Web裏技] - ホスト名でアクセス制限 -」の方を始めに見た方がわかり易いと思います。
「そのやり方は間違っている!」もしくは「もっと良いやり方がある!」と思った方は、筆者宛のメールもしくは掲示板への書き込みで知らせて下さい。 (掲示板の方にも関連記事があります。)
なお、CGI へのアクセス制限の仕方については、ゲスッメモリアルが詳しいので覗いてみましょう。掲示板あらしを過去にやっていた本人による解説です。
上の仮定のもとで、以下の4つのファイルを作成すれば、掲示板へのアクセスにパスワードによる制限がかかります。
1. /home/name/public_html/BBS/.htaccess の中身の例
AuthUserFile /home/name/etc/htpasswd AuthGroupFile /home/name/etc/htgroup AuthName "Restricted Access Area" AuthType Basic require group guest
実際には、これにこの掲示板システムに付属の dot_htaccess の内容を加えた方が良いでしょう。
2. /home/name/public_html/BBS/spool/.htaccess の中身は /home/name/public_html/BBS/.htaccess と同じでも良いし、無くても良い。
3. まず、apache 付属の htpasswd のソース (support/htpasswd.c) を make htpasswd によってコンパイルして、パスの通ったディレクトリーにコピーし、rehash を実行する。以下の作業によって、htpasswd を作成する。
cd /home/name/etc htpasswd -c htpasswd user1 user1 のパスワードを打ち込む htpasswd htpasswd user2 user2 のパスワードを打ち込む ...... htpasswd htpasswd user5 user5 のパスワードを打ち込む
ここでは人数が 5 人になっていますがこれは適当に変えてください。
4. /home/name/etc/htgroup の中身の例
vip: user1 user2 guest: user1 user2 user3 user4 user5
/home/name/public_html/BBS/.htaccess の中身を以下のようにすれば、*.hoge.hoe.jp 以外からのアクセスはできなくなります。
order deny,allow deny from all allow from .hoge.hoe.jp
逆に、*.hoge.hoe.jp および *.moge.moe.jp からの嫌な奴のアクセスのみを拒否したい場合は、
order allow,deny allow from all deny from .hoge.hoe.jp .moge.moe.jp
とします。より詳しい説明については Module mod_access を読んで下さい。
/home/name/public_html/BBS/.htaccess の中身を以下のようにすれば、*.hoge.hoe.jp 以外からのアクセスにはパスワードを要求するようになります。
AuthUserFile /home/name/etc/htpasswd AuthGroupFile /home/name/etc/htgroup AuthName "Restricted Access Area" AuthType Basic Satisfy any require group guest order deny,allow deny from all allow from .hoge.hoe.jp
逆に、*.hoge.hoe.jp および *.moge.moe.jp からのアクセスに対してのみパスワードを要求したい場合は、終わりの3行を次のように変更します。
order allow,deny allow from all deny from .hoge.hoe.jp .moge.moe.jp
より詳しい説明については、マニュアルの require directive, Module mod_access, Satisfy を読んで下さい。
公開日記などにこの掲示板システムを使いたい場合は、自分自身だけが書き込めるようにパスワードでアクセス制限する必要があります。そうしたい場合は、/home/name/public_html/BBS/.htaccess の内容を以下のようにします。
AuthUserFile /home/name/etc/htpasswd AuthGroupFile /home/name/etc/htgroup AuthName "Restricted Access Area" AuthType Basic <Files *.cgi> require user user1 </Files>
ファイル単位のアクセス制限については、マニュアルの <Files> を読み、<Location>, <Limit> を参考にして下さい。