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

Apache избегает защиты паролем для одного файла

Я хочу защитить весь виртуальный хост в Apache, но все же хочу разрешить общий доступ к одному файлу. Виртуальный хост передает все запросы на сервер Tomcat на внутренней стороне. Как лучше всего это сделать?

Я попытался настроить определение своего виртуального хоста следующим образом, но он по-прежнему требует пароля для файла, который я хочу публично раскрыть:

<VirtualHost *>
    ServerName example.com

    <Location / >
      Order Allow,Deny
      Allow from all
      AuthType Basic
      AuthName "Restricted Access"
      AuthUserFile /etc/apache2/secrets.htpasswd
      Require valid-user
    </Location>

    <Location /foo/bar.html>
      Order Allow,Deny
      Allow from all
    </Location>

</VirtualHost>

Какие-либо предложения?

Оба раздела <Location> применяются к вашему файлу, поэтому они оба обрабатываются для него по порядку. http://httpd.apache.org/docs/2.0/sections.html Ваш второй раздел не отменяет ничего из вашего первого, поэтому директивы AuthType, Require и т. Д. Остаются неизменными.

Если вы добавите директиву «Удовлетворять любому», директива (http://httpd.apache.org/docs/2.0/mod/core.html#satisfy) в последнем разделе, я считаю, что должен разрешить весь трафик благодаря вашим параметрам «Разрешить заказ, запретить» и «Разрешить от всех». Однако вы можете не повторять эти две директивы.