Outra abordagem é: Mapeia URLs para locais do sistema de arquivos por meio da configuração do Apache. Para este efeito, você deve usar a diretiva Alias
. A sintaxe é:
Alias [URL-path] file-path|directory-path
Por favor, note que mod_alias
é necessário, mas vem com o Apache2 por padrão. Você pode verificar se está instalado através de:
sudo apache2ctl -M | grep alias
O alias pode ser usado para diretórios e arquivos. Também pode ser usado em ambos os níveis:
- Nível de servidor (em
/etc/apache2/apache2.conf
ou em/etc/apache2/conf-avaliable/myAlias.conf
) - o alias estará disponível para cada Virtualhost ativo; - Nível de VHost (em
/etc/apache2/sites-avaliable/someVH.conf
; entre<VirtualHost >
tags) - o alias estará disponível apenas para o VirtualHost atual.
Observe que você pode precisar especificar mais
<Directory>
seções que cobrem o destino dos aliases. O aliasing ocorre antes<Directory>
seções são verificadas, portanto, apenas o destino dos aliases são afetados.Em particular, se você estiver criando um Alias para um diretório fora do seu
DocumentRoot
, talvez seja necessário permitir explicitamente o acesso ao diretório de destino.
Aqui está uma lista de alguns prós e contras das duas abordagens: Alias e SymLinks. Também verifique isso comentário.
Exemplo 1: Alias no nível VHost
Vamos supor que você queira criar um Alias no nível do VirtualHost e o arquivo de configuração do VH seja /etc/apache2/sites-available/000-default.conf
. Neste caso, o arquivo de configuração deve se parecer com isso:
<VirtualHost *:80>
# other VirtualHost directives
Alias /foobar /home/znorg/foobar
<Directory /home/znorg/foobar>
Require all granted
</Directory>
</VirtualHost>
Não se esqueça de reiniciar (ou recarregar) o servidor:
sudo systemctl restart apache2.service
Exemplo 2: Alias no nível do servidor
Vamos supor que você queira criar um Alias no nível do servidor e não queira tocar em apache2.conf
. Nesse caso, você precisa criar e ativar um arquivo de configuração adicional. No nosso exemplo, isso é foobarAlias.conf
, que deve ser colocado no diretório /etc/apache2/conf-available/
.
Você pode criar este arquivo usando (use ctrl + o para salvar e ctrl + x para sair):
sudo nano /etc/apache2/conf-available/foobarAlias.conf
E seu conteúdo deve ser algo assim:
Alias /foobar /home/znorg/foobar
<Directory /home/znorg/foobar>
Require all granted
</Directory>
Não se esqueça de ativar a nova configuração e reiniciar (ou recarregar) o servidor:
sudo a2enconf foobarAlias && sudo systemctl restart apache2.service