Apache-2.4 によって提供される新しい認証および承認フレームワークを使用しており、認証 Cookie を取得できる 1 つのサブディレクトリ (場所 /foo) を除いて、サイト全体 (場所 /) を不正アクセスに対して閉じる必要があります。AuthMerging が使用するディレクティブであるように見えますが、うまくいきません:
<Location />
AuthType form
AuthFormProvider foo
Session On
SessionCookieName ti2f
Include conf/sessionpw.conf
AuthName TI
<RequireAll>
Require foo ipaddress
Require foo expiration
</RequireAll>
ErrorDocument 401 /foo/
</Location>
<Location /foo>
AuthMerging Or
Require all granted
DirectoryIndex index.php
</Location>
残念ながら、/foo へのアクセスはブロックされたままです -- 401 Unauthorized. LogLevel をクランクアップすると、mod_authz_core によってログに記録された次のメッセージが表示されます。
authorization result of Require all granted: granted
authorization result of <RequireAny>: granted
authorization result of AuthMerging Any: granted
authorization result of Require all granted: granted
authorization result of <RequireAny>: granted
authorization result of AuthMerging Any: granted
authorization result of Require foo ipaddress: denied (no authenticated user yet)
authorization result of Require foo expiration: denied (no authenticated user yet)
authorization result of <RequireAll>: denied (no authenticated user yet)
authorization result of <RequireAny>: denied (no authenticated user yet)
サブロケーション /foo に対して AuthMerging が「Or」に設定されている場合、Apache が「許可されたすべてを要求する」許可の後に親ロケーションの require-directives を調べるのはなぜですか?