Apache (2.4) RequireAny REQUEST_URI
Apache (2.4) RequireAny with REQUEST_URI
我一直在努力让它工作,但不知道哪里出了问题。
在 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 语句之外的所有语句都有效,表达式一定是错误的,但不知道它有什么问题。
我相信你应该尝试使用 "If" 而不是像这样在 RequireAny 之前:
<If "%{REQUEST_URI} =~ m#(/my/InvalidCredentials$|/my/PublicPage/)#">
Require all granted
</If>
<Else>
<RequireAny>
#all checks except the require expr
</RequireAny>
</Else>
对我来说,它看起来更简单、更连贯,而且对我来说它是这样工作的。
关于您的检查,我不太确定为什么它不起作用,文档中的所有示例都用引号将 expr 括起来,但不确定是否仅此而已,但希望其他选项有所帮助。
无论如何,这里是 link 的 Require expr 示例,以便快速参考:
Require expr
我一直在努力让它工作,但不知道哪里出了问题。
在 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 语句之外的所有语句都有效,表达式一定是错误的,但不知道它有什么问题。
我相信你应该尝试使用 "If" 而不是像这样在 RequireAny 之前:
<If "%{REQUEST_URI} =~ m#(/my/InvalidCredentials$|/my/PublicPage/)#">
Require all granted
</If>
<Else>
<RequireAny>
#all checks except the require expr
</RequireAny>
</Else>
对我来说,它看起来更简单、更连贯,而且对我来说它是这样工作的。
关于您的检查,我不太确定为什么它不起作用,文档中的所有示例都用引号将 expr 括起来,但不确定是否仅此而已,但希望其他选项有所帮助。
无论如何,这里是 link 的 Require expr 示例,以便快速参考: Require expr