Eu tenho a seguinte configuração para gerar subdomínios / raízes de documentos virtuais automaticamente configurados em /etc/apache2/apache2.conf (rodando no Debian 7.0)
<VirtualHost *:80>
ServerAlias *
UseCanonicalName Off
VirtualDocumentRoot /home/%2/htdocs/%1
# Setup correct (virtual) document root as $_SERVER['DOCUMENT_ROOT'] for PHP
php_admin_value auto_prepend_file /home/jbraun/setdocroot.php
<Directory /home/%2/htdocs/%1>
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.html index.php
# These lines don't work
AuthType Basic
AuthName "HALMA"
AuthUserFile /usr/local/apache/passwd/passwords
Require valid-user
# Commented for testing purposes only
# Allow from halma.lan
# Satisfy any
</Directory>
CustomLog ${APACHE_LOG_DIR}/vhost_access.log combined
O que está funcionando e o que é isso?
A configuração acima permite que os usuários criem subdiretórios sob seu diretório /home/username/htdocs/
e acessem-nos no navegador por um subdomínio gerado dinamicamente, por exemplo, a pasta /home/jbraun/htdocs/project
estará acessível em http://project.jbraun.halma.lan
(onde halma.lan
é o nome da intranet local, o DNS correspondente está configurado e funcionando). Além disso, toda a história é acessível através do serviço DynDNS em URLs semelhantes, como project.jbraun.foobar.dyndns.org
do mundo exterior.
O que eu quero alcançar e não está funcionando
Eu gostaria de ter acesso a partir da rede local ( halma.lan
ou digamos 192.168.2.*
) sem proteção por senha enquanto o acesso da WAN proveniente de um URL DynDNS ( project.jbraun.foobar.dyndns.org
) deveria ser protegido por senha.
Assim, segui os documentos do Apache e adicionei as linhas "Auth *"
AuthType Basic
AuthName "HALMA"
AuthUserFile /usr/local/apache/passwd/passwords
Require valid-user
mas infelizmente nada acontece (sim, eu reiniciei o apache nesse meio tempo). O arquivo de log de erros do servidor também é silencioso.
Quando eu adiciono as mesmas linhas em alguns dos meus arquivos .htaccess tudo funciona como esperado, então eu suponho que deve haver alguns problemas com o VirtualDocumentRoot e / ou caminhos de arquivo gerados dinamicamente na configuração.
Alguém poderia me indicar a direção certa, como eu poderia realizar isso ou se é possível?
Agradecemos antecipadamente.
* [EDIT] *
Gostaria de postar a configuração que funcionou no final, apenas para referência e outras pessoas que pesquisam esse problema:
<VirtualHost *:80>
ServerAlias *.*.halma.lan
ServerAlias *.*.foobar.dyndns.org
UseCanonicalName Off
VirtualDocumentRoot /home/%2/htdocs/%1
# Setup correct (virtual) document root as $_SERVER['DOCUMENT_ROOT'] for PHP
php_admin_value auto_prepend_file /home/jbraun/setdocroot.php
#<Directory /home/%2/htdocs/%1>
<Directory ~ "^/home/.*/htdocs/.*/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
DirectoryIndex index.html index.php
AuthType Basic
AuthName "HALMA"
AuthUserFile /usr/local/apache/passwd/passwords
Require valid-user
Allow from 10.0.0
Satisfy Any
</Directory>
CustomLog ${APACHE_LOG_DIR}/vhost_access.log combined
</VirtualHost>
Obrigado ao HBruijn