0

私はこれを機能させようとしてきましたが、どこが間違っているのかわかりません。

Apache構成には、次のセクションがあります。

<Directory /var/www/html/>
  AuthType Kerberos
  AuthName "Login"
  KrbMethodNegotiate on
  KrbMethodK5Passwd on
  KrbAuthRealms EXAMPLE.LOCAL
  KrbServiceName HTTP/example.local@EXAMPLE.LOCAL
  Krb5KeyTab /etc/httpd/conf/http.keytab
  <RequireAny>
      Require valid-user
      Require local
      Require ip 192.168.2.190
      Require expr %{REQUEST_URI} =~ m#/my/InvalidCredentials#
      Require expr %{REQUEST_URI} =~ m#/my/PublicPage/*#
  </RequireAny>
</Directory>

認証から除外しようとしているページは次のとおりです。

Require expr ステートメント以外はすべて機能しており、式が間違っているに違いありませんが、何が問題なのかわかりません。

4

1 に答える 1

1

次のように、RequireAny の前に代わりに「If」を試してみるべきだと思います。

<If "%{REQUEST_URI} =~ m#(/my/InvalidCredentials$|/my/PublicPage/)#">
      Require all granted
</If>
<Else>
      <RequireAny>
      #all checks except the require expr
      </RequireAny>
</Else>

私にとっては、よりシンプルで一貫性があり、このように機能します。

あなたのチェックについて、なぜそれが機能しないのかよくわかりません。ドキュメントのすべての例は expr を引用符で囲んでいますが、それだけではわかりませんが、この他のオプションが役立つことを願っています.

いずれにせよ、より簡単に参照できるように、Require expr の例のリンクを次に示します

于 2016-08-03T10:55:32.020 に答える