linux+apache2の環境です。
昨日に気が付いたですが、構築したsslサイトにhttpsでアクセスしますと、パスワードが聞いてくれず、
そのまま要求したホームページが開いてしまいました。
同じ.htaccessファイルを普通のサイトディレクトリーの下にコピーして、httpでアクセスしますと、
パスワードがちゃんどきいてくれます。
因みに、認証機能はパソコンおやじのホームページに紹介されたやり方で、.htaccessの内容は:
AuthType Basic
AuthName "Please enter username and password"
AuthUserFile /usr/local/apache/passwd
AuthGroupFile /dev/null
<Limit GET POST>
require valid-user
</Limit>
こんにちは。
> linux+apache2の環境です。
> 昨日に気が付いたですが、構築したsslサイトにhttpsでアクセスしますと、パスワードが聞いてくれず、
> そのまま要求したホームページが開いてしまいました。
> 同じ.htaccessファイルを普通のサイトディレクトリーの下にコピーして、httpでアクセスしますと、
> パスワードがちゃんどきいてくれます。
普通、httpで.htaccessが利くなら、同じ場所をhttpsでアクセスしても.htaccessが利かない理由はありません。
つまり、上記で認証が利かないといっているディレクトリは、そもそもhttpでも認証が利かないのではないでしょうか?
であれば、原因としては下記にも書いていますが、そのディレクトリで、AllowOverrideディレクティブでAuthConfig(またはAll)が書かれていないからではないです。
下記を参考に、対象となるディレクトリでAllowOverrideデイレクティブを適切に設定してあげてください。"All"でもいいかもしれません。
http://www.aconus.com/~oyaji/tips/apache_tips2.htm
どうもありがとうございます。
>> 普通、httpで.htaccessが利くなら、同じ場所をhttpsでアクセスしても.htaccessが利かない理由はありません。
書き忘れましましたが、http とhttpsはDocumentRootは違います。
httpd.confには
DocumentRoot "/home/wwwdata"
ssl.confには
DocumentRoot "/home/wwwssl"
としています。
.htaccessファイルはそれぞれwwwdataとwwwsslの下において試していました。
> 下記を参考に、対象となるディレクトリでAllowOverrideデイレクティブを適切に設定してあげてください。"All"でもいいかもしれません。
none, All, Authconfigを試してみましたが、だめでした。
今、調べたところでは、普通ではできるはずですが、おそらくどこかの設定をいじったせいこうなったのではないか、と考えています。でも、これを制御できるのは、
httpd.confに
AccessFileName .htaccess
# AllowOverride None
# AllowOverride All
AllowOverride AuthConfig
そして、ssl.confにDocumentRootの宣言ぐらいですね。
全然原因がわかりません。
あれこれやってみました。
そして、httpd.confに
<Directory /home/comfile/wwwssl>
Options Indexes FollowSymLinks
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>
のようなものを付け加えると、認証が効くようになりました。