- ベストアンサー
.htaccessでアクセス制限をかけた階層内のディレクトリにアクセス制限をかける方法
- 会社のサイトをホスティング会社にお願いして専用サーバーで保守管理していますが、.htaccessでアクセス制限をかけたディレクトリの下の階層にもアクセス制限をかけたいです。しかし、.htaccessはアクセス制限をかけたディレクトリのすべての階層に有効範囲になるため、重複して設定することはできません。そこで、ディレクトリにアクセス制限をかける方法を教えてください。
- フリーのCGIやPHPを少し改造できる程度のスキルを持っているので、アクセス制限をかけるためにはどのような方法が一般的なのか知りたいです。CGIやWebサーバーの設定など、何でも構いませんので、教えていただけると助かります。
- アクセス制限をかけたディレクトリの下の階層にもアクセス制限をかけたい場合、.htaccessではできないため、他の方法を検討する必要があります。具体的には、CGIやPHPなどのプログラムを組む方法や、Webサーバーの設定を変更する方法があります。スキルに応じて適切な方法を選び、ディレクトリのアクセス制限を実現してください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
例えば /home/tarou/www/ 以下がドキュメントディレクトリで、かつ.htaccess有効な場合に http://****/member/ で一旦パスワードを入れて http://****/member/super-member/ でもう一度別のパスワードを要求して 守秘性の高い認証を行いたいと言うことでしょうか? 私なら http://****/member/.htaccess にてbasic認証 パスワードを6文字程度 http://****/super-member/.htaccess にてdigest認証 パスワード8文字以上にします 2回、パスワードは要求されませんが、守秘性の高い認証は出来ます。 どうしても質問どおりの事をしたいのなら 別ツリーにAliasを設定した上で、Setenvif と Satisfy all 使うしかないかな? httpd.conf に Alias /member/super-member/ "/home/tarou/www/member/super-member/" http://****/member/super-member/.htaccess の内容(Apache2.2系用 2.0系迄だと書式が違います) SetEnvIf Referer "^http://www\.umasika\.com/member/" ref_ok SetEnvIf Referer "^http://www\.umasika\.com/member/super-member/" ref_ok # ↑これを入れないとリンクから来た人は最初のPAGEしか見れない AuthType Digest AuthName "super-SP area" AuthDigestProvider file AuthUserFile /home/tarou/.htdigest Require valid-user Satisfy all # ↑これが肝 order deny,allow allow from env=ref_ok deny from all Digest認証の参考URLは(英語 2.0系はurlの2.2を2.0に変えてアクセス) http://httpd.apache.org/docs/2.2/ja/mod/mod_auth_digest.html http://httpd.apache.org/docs/2.2/ja/programs/htdigest.html
その他の回答 (1)
- umasikajiro
- ベストアンサー率67% (545/803)
#1の訂正 >httpd.conf に Alias /member/super-member/ "/home/tarou/www/member/super-member/" これでは同じツリーですから意味無しですね 正しくは httpd.conf に Alias /member/super-member/ "/home/tarou/super-member/"