Я пытаюсь использовать Apache с OpenID Connect (mod_auth_openidc) для ограничения доступа, но по определенным путям я хочу неограниченный доступ.Мой httpd.conf содержит что-то вроде этого
<Location />
Require valid-user
</Location>
<Location /myPath>
Require all granted
</Location>
, и / myPath действительно имеет неограниченный доступ, т.е. неавторизованные пользователи получают доступ.
Теперь я пытаюсь добавить некоторые условные ограничения, используя «Если»директивы, но оставьте / myPath по-прежнему неограниченным, например,
<Location />
<If someBoolean>
Require valid-user
</If>
</Location>
<Location /myPath>
Require all granted
</Location>
. В этом случае я получаю неограниченный доступ к / myPath только в том случае, если someBoolean имеет значение «false».Если это "true", для доступа к / myPath требуется действительный пользователь, а это не то, что я хочу.Путь по умолчанию "/" работает просто отлично, то есть он требует действительного пользователя тогда и только тогда, когда someBoolean имеет значение "true".
Теперь я попытался провести дополнительное тестирование: когда я добавляю директиву Else, например
<If someBoolean>
Require valid-user
</If>
<Else>
Require valid-user
</Else>
, который в моем понимании должен быть эквивалентен простому использованию
Require valid-user
Я никогда не получаю неограниченный доступ к /myPath.
Как я могу получить желаемое поведение?