parece que você disse ao Apache para requerer uma senha para sua web-root, mas você usou o Apache para não requerer para todos os outros diretórios?
Dentro do seu .htaccess (ou no httpd.conf, eles fazem o mesmo trabalho) você provavelmente tem algo parecido com o que está abaixo (adicione um link pastebin ao seu arquivo .htaccess e eu posso fazer isso exatamente):
<Directory "/www/private">
Order allow,deny
Allow from all
Options Indexes
AuthType Basic
AuthName "Private Access"
AuthUserFile "/www/private/.htpasswd"
Require valid-user
</Directory>
Mas isso também se aplica a todos os diretórios nesse caminho. Você precisará informar explicitamente ao Apache o contrário.
<Directory "/var/private/subdir">
Satisfy any
</Directory>
Você pode usar expressões regulares com <DirectoryMatch "regex">
para generalizar isso, apenas não se esqueça de proteger contra asdf.com/subdir/../
expressões.
ATUALIZAÇÃO:
Também vale a pena mencionar que, embora grande parte da documentação já tenha <Directory[Match]>
diretivas, também há <Location[Match]>
diretivas que são úteis no caso de links simbólicos no sistema de arquivos subjacente.