- 締切済み
Apache2.2.6にてBasic認証の設定
.htaccessファイルに /home/hoge/public_html/admin/.htaccessを作成して AuthType Basic AuthUserFile /home/hoge/public_html/admin/.htpasswd AuthGroupFile /dev/null AuthName "test" <Limit GET POST> require valid-user </Limit> <Files .htaccess> Order deny,allow Deny from all </Files> とするとエラーで動きません。 <Files...をコメントアウトすれば動くようになったのですが、 ファイルのアクセス制限をかけるにはどうしたらいいのでしょうか? httpd -M で確認しても authz_host_module (static) となっていて必要なモジュールは認識してるようですし、 2.2になってだいぶ変更があったみたいで、色々調べて試してみたのですができなくて困っています。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- chaimasuka
- ベストアンサー率57% (26/45)
order not allowed here というエラーが出るということは、 Apache の設定ファイル httpd.conf において、 AllowOverride ディレクティブ で、Allow Order Deny の使用を許可していないのではないでしょうか。 AllowOverride ディレクティブは、.htaccess ファイルで使用できるディレクティブを許可します。 認証に関するディレクティブはうまくいっているとのことなので、 AllowOverride AuthConfig となっているのでは。 AllowOverride AuthConfig Limit とLimit を書き足すか、 AllowOverride All と書き換えて、httpd を再起動すれば、 .htaccess 内でホストへのアクセス制御ができるようになります。
- kalze
- ベストアンサー率47% (522/1092)
どんなエラーがでるのでしょうか? apacheのログが見れるならログから、見られないならブラウザに表示されるものでもいいので。 AuthGroupFile に必要なモジュールをいれていないので、その部分だけ削りましたが、その状態で2.2.3で問題なく動作しました。
ファイルの場所を特定する書き方ではどうでしょうか。 たとえば <Directory /home/hoge/public_html/admin> <Files .htaccess> Order deny,allow Deny from all </Files> </Directory> とか <Directory /home> <Files test.html> Order deny,allow Deny from all </Files> </Directory> のようにディレクトリを特定してみてもエラーになりますか。
補足
やってみましたがエラーになりました・・・
.htaccessではないファイルへのアクセス制限を書いてもエラーになりますか?
補足
同じディレクトリにtest.htmlを作ってそれを指定してみましたが同じようにエラーになりました。
補足
ブラウザからはInternal Server Errorになります。 Apacheのlogには /home/hoge/public_html/admin/.htaccess: order not allowed here となります。 よろしくお願いします。