Я хочу ограничить доступ к полному веб-сайту (apache 2.4) определенными IP-адресами. Кроме того, я хочу ограничить доступ к определенным подпапкам с помощью аутентификации пользователя. Авторизация пользователя не работает. Вот что я получил:
В конфигурации vhost у меня есть
<Location />
# Localhost
Require ip 127.0.0.1i
# some other IP
Require ip 1.2.3.4
<Location>
Теперь я хочу, чтобы подпапка /secure/ требовала действительного входа пользователя
<webroot>/secure/.htaccess
похоже
<RequireAll>
Require all granted
Require user user1 user2 user3
AuthBasicProvider file
AuthType Basic
AuthName "Secure Folder Login"
AuthUserFile /securePath/userAuth
</RequireAll>
Я все еще могу получить доступ к /secure с IP 1.2.3.4 без аутентификации пользователя. Похоже, что apache сопоставляет IP с директивой Require ip 1.2.3.4
(внутри неявного RequireAny
) и не заботится о возможных дополнительных ограничениях в дальнейшем.
mod_access_compat
, вы можете использовать старый синтаксис Apache, чтобы сделать это работает, как ожидалось. Код в ссылке имеетIfModule
проверки, поэтому, когда модуль отсутствует, он вернется к более новому синтаксису и поведению, при котором он игнорирует аутентификацию. К сожалению, окончательного ответа на этот вопрос не нашел. - person Shikkediel   schedule 12.07.2020