Apache 2.4、基本ファイル認証を無視する

Apache 2.4、基本ファイル認証を無視する

私の(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>

誰でもこれを改善または簡素化できます。そうしてください。

おすすめ記事