Я хочу защитить весь виртуальный хост в 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) в последнем разделе, я считаю, что должен разрешить весь трафик благодаря вашим параметрам «Разрешить заказ, запретить» и «Разрешить от всех». Однако вы можете не повторять эти две директивы.