Apache: базовая аутентификация для root, ограничение хоста для каталога
Я хочу ограничить доступ к моему 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 без базовой аутентификации. Соединения от других хостов не должны быть разрешены даже с правильными учетными данными. На самом деле, эти соединения даже не должны запрашиваться для базовых учетных данных.
Что мне не хватает?
1 ответ
Можете ли вы попробовать это с пустым файлом 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>