2016-08-03 2 views
0

Я пытался заставить это работать и не знаю, где это происходит.Apache (2.4) RequireAny с REQUEST_URI

В апача конфигурации у меня есть следующий раздел:

<Directory /var/www/html/> 
    AuthType Kerberos 
    AuthName "Login" 
    KrbMethodNegotiate on 
    KrbMethodK5Passwd on 
    KrbAuthRealms EXAMPLE.LOCAL 
    KrbServiceName HTTP/[email protected] 
    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> 

Страницы Я пытаюсь исключить из проверки подлинности, как это:

Все, кроме Требований expr, являются w orking, выражения должны быть неправильными, но не знаете, что с ним не так.

ответ

1

Я считаю, что вы должны попробовать «Если» вместо того, чтобы перед RequireAny, как это:

<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

Смежные вопросы