Я пытаюсь сделать это с помощью require local и require valid-user, но похоже, что require local переопределяет действительного пользователя. сделать локальный доступ не нужно аутентифицировать
AuthName "Authenticate"
AuthType Basic
AuthUserFile "/home/tmp/.htpassword"
Require local
Require valid-user
Когда я удаляю требуемый локальный, аутентификация работает. но он разрешает доступ извне. Итак, как настроить это, чтобы я мог разрешить локальный доступ только с допустимым пользователем
Начиная с Apache 2.4 у вас есть возможность использовать RequireAll
Директива группировки:
<Directory /some/path>
AuthName "Authenticate"
AuthType Basic
AuthUserFile "/home/tmp/.htpassword"
<RequireAll>
Require valid-user
Require ip 192.168.1
</RequireAll>
</Directory>
Без этого явного RequireAll
директива Apache использует неявный RequireAny
где для предоставления доступа достаточно успешного соответствия только одному из требований.
В Apache 2.2 у вас был менее детальный контроль, но можно было использовать Satisfy
директива, чтобы указать Apache, как следует комбинировать директивы Allow и Require.
<Directory /some/path>
AuthName "Authenticate"
AuthType Basic
AuthUserFile "/home/tmp/.htpassword"
Require valid-user
Order allow,deny
Allow from 192.168.1
Satisfy All
</Directory>
Для этого требуется как аутентифицированный пользователь, так и клиентский IP-адрес из вашего локального диапазона: в этом примере192.168.1.0/24
.