私の(Debianスタイル、パーティションファイル)設定には次のものがあります。
<VirtualHost *>
ServerName www.example.org
DocumentRoot /var/www/example
CustomLog /var/log/apache2/example/access.log combined
<Directory /var/www/example/subdir/admin/>
AllowOverride All
AuthType Basic
AuthName "admins only"
AuthUserFile /etc/apache2/pass.txt
Require valid-user
</Directory>
</VirtualHost>
これは無視されます。つまり、ログインプロンプトなしでそのディレクトリ内のファイルを参照できます。設定してLogLevel debug
みる
AH01628: authorization result: granted (no directives)
ログ行はによって生成されるため、[authz_core:debug]
認証行が存在することを認識しているように見えますが、実際にいくつかの認証を実行する必要はありません。
交換してもvalid-user
効果はall denied
ありません。
必要なモジュールはすべてあるようです。
.htaccess
別のディレクトリに追加しようとしましたが、「ここでは認証タイプは許可されていません」と記録されました。
私はAllowOverride All
それが許されるほとんどどこでもそれを持っています。
同様の問題に対する解決策はまだ見つかりませんでした。この問題を解決する方法を教えてください。喜んで試してみて、もう一度報告します。
ベストアンサー1
これは明確な答えではありませんが、私がどのように解決したかを報告できます。
すべてのhttpリクエストはhttpsにリダイレクトされますが、どこで実行されるのかわかりません。これは、*:80の仮想ホストが無視され、*:443の仮想ホストが使用されることを意味します。認証エントリを*:443仮想ホストに移動し、前に「すべて拒否要求」を追加すると、ログインが要求されます。仮想ホストに含まれるコードです。
<Directory /subdir/>
Require all denied
</Directory>
<Location /subdir/>
AllowOverride All
AuthType Basic
AuthName "admins only"
AuthUserFile /etc/apache2/userpass.txt
AuthGroupFile /etc/apache2/group
Require group admins
</Location>
誰でもこれを改善または簡素化できます。そうしてください。