Use a diretiva Alias
no arquivo de configuração do Apache.
Alias /virtual-dir /var/www/foo
Além disso, rm -r
não atravessa links simbólicos e não passa em cascata.
Estou vindo do IIS e a configuração de diretórios virtuais é muito agradável. Você apenas clica com o botão direito do mouse e adiciona um "diretório virtual" apontando para qualquer caminho que desejar. Esse caminho relativo é refletido pelo navegador ao visualizar o site.
Como faço o mesmo com o Apache? Symlinks me assusta porque deletar cascatas. Existe uma maneira melhor de criar diretórios virtuais no Apache? Eu estou usando o MAMP para Mac, que usa o apache2.
Use a diretiva Alias
no arquivo de configuração do Apache.
Alias /virtual-dir /var/www/foo
Além disso, rm -r
não atravessa links simbólicos e não passa em cascata.
Se você apontar vários domínios para o mesmo diretório html público e o conteúdo real residir fora do html público (web root), você poderá fazer isso em duas etapas:
1) reescreva o diretório por domínio, por exemplo
<VirtualHost 127.0.0.1:80>
ServerName host_one.ca
RewriteEngine On
RewriteRule "/?images(.*)" "/www/shared/host_one/images/$1" [NC]
</VirtualHost>
<VirtualHost 127.0.0.1:80>
ServerName host_two.ca
RewriteEngine On
RewriteRule "/?images(.*)" "/www/shared/host_two/images/$1"
</VirtualHost>
2) Em seguida, adicione links simbólicos (alternativamente, o Alias)
ln -s /shared/host_one/images /www/html/images/host_one
ln -s /shared/host_two/images /www/html/images/host_two
Apenas tenha cuidado. host_two imagens podem ser acessadas via host_one: domain_one.ca/images/host_two/{filename}
A menos que você adicione regras adicionais que qualquer coisa que NÃO esteja no diretório do host atual será removida. Para o host_one VirtualHost (eu fiz não confirme se esta regra funciona):
# prevent showing content from other hosts
RewriteRule "/?images/!(host_one/.*)" /404 [NC,L]
Se é um servidor seguro, o diretório 'Alias' precisa ir na configuração do VirtualHost 443 também
<VirtualHost *:443>
...
Alias /virtual-dir /var/www/foo
</VirtualHost>