Я хочу ограничить доступ к моему Apache HTTPD, используя базовую аутентификацию для всех файлов, кроме файлов в определенном каталоге.
Следующее отлично работает для настройки базовой аутентификации для всего сервера:
<Directory />
AuthType Basic
AuthName "Private"
AuthUserFile /usr/local/apache/passwd/passwords
</Directory>
Однако я также хочу ограничить каталог /foo
к одному хосту, независимо от базовой авторизации:
<Directory /foo>
Order Deny,Allow
Deny from all
Allow from my-host.com
</Directory>
Обе настройки работают нормально сами по себе, но я не могу заставить их работать вместе:
Satisfy all
в /foo
пункт) пользователи должны приходить с правильного хоста и иметь действительные учетные данные для доступа /foo
Satisfy any
в /foo
то пользователи могут иметь действительные учетные данные или приходить с правильного хостаОднако мне нужны только люди из my-host.com
иметь доступ к /foo
без базовой авторизации. Подключения с других хостов не должны быть разрешены даже с правильными учетными данными. Фактически, для этих подключений не следует даже запрашивать базовые учетные данные.
Что мне не хватает?
Можете ли вы попробовать это с пустым файлом passwd для / foo
<Directory /foo>
Order Deny,Allow
Deny from all
Allow from my-host.com
AuthType Basic
AuthName "my-host only"
AuthUserFile /usr/local/apache/passwd/empty
Satisfy any
</Directory>