Назад | Перейти на главную страницу

Почему контроль доступа и авторизация не работают вместе в Apache

У меня есть сервер Centos Linux с Apache 2.4 и несколько виртуальных сайтов. Я потратил много времени на реализацию контроля доступа по ip, но не смог. Теперь я понял, что контроль доступа работает, если в .htaccess на виртуальном хосте нет авторизации.

У меня вопрос, как заставить работать оба? т.е. только посетителям с определенных IP-адресов разрешено посещать сайт и предлагается ввести пароль .htaccess / .htpasswd.

Вот мои настройки виртуального хоста.

Alias /test "/home/test"
<Directory "/home/test">
    Options All
    Require all denied
    AllowOverride All
    Require ip w.x.y.z
 </Directory>

и файл .htaccess.

AuthUserFile /home/test/.htpasswd
AuthGroupFile /dev/null
AuthName "Welcome user"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>

Если я удалю .htaccess и .htpasswd, я получу "Запрещено". При включенных обеих настройках я ожидал, что он будет предлагать имя пользователя и пароль только пользователям из действительных IPS. Почему нет? Как заставить работать вместе? Спасибо.