Location を VirtualHost の中に書けば、その内容は該当の VirtualHost にだけ効く。
Listen 60080 <VirtualHost *:60080> ProxyPass /somewhere/ http://www.somewhere.co.jp <Location /somewhere/> AuthType Basic AuthName "OSXLogin" AuthUserFile /etc/apache2/users/passwords Require valid-user </Location> </VirtualHost>
これを例えば下記のようにしていると、
Listen 60080 <VirtualHost *:60080> ProxyPass /somewhere/ http://www.somewhere.co.jp </VirtualHost> <Location /somewhere/> AuthType Basic AuthName "OSXLogin" AuthUserFile /etc/apache2/users/passwords Require valid-user </Location>
port 80 でも 60080 でも somewhere に Basic auth が掛かる。しかし、ProxyPass は 60080 にしか設定していないので、auth に通過した後で NotFound になる。
仮に 80 を public、60080 を private のような使い分けをする場合に、public の 80 の Basic auth が攻撃の糸口にならないとも限らないので、注意が必要。