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>
Другие вопросы по тегам