Apache2, ServerAlias não funciona

0

Eu sei que é uma pergunta feita várias vezes, mas li todas e não resolvi o problema.

Eu configurei o virtualhost apache assim:

sudo nano /etc/apache2/sites-available/example.loc

<VirtualHost *:80>
ServerName example.loc
ServerAlias www.example.loc

DocumentRoot /var/www/example/web
<Directory /var/www/example/web>
    AllowOverride All
    Order allow,deny
    Allow from All
</Directory>

ErrorLog /var/log/apache2/project_error.log
CustomLog /var/log/apache2/project_access.log combined

Eu coloquei isso no arquivo /etc/hosts :

127.0.0.1   localhost
127.0.0.1   example.loc

e depois carreguei o site desta forma:

sudo a2ensite example.loc

e reiniciado o apache.

Se eu for para example.loc , ele funcionará corretamente, mas se eu for para www.example.loc , isso não funciona, dizendo que é "impossível encontrar www.example.loc "!

Eu fiz algo errado na configuração?

    
por Lughino 05.09.2013 / 21:11

1 resposta

3

As entradas para /etc/hosts não são "inclusivas", portanto, sua adição de example.loc não inclui www.example.loc (ou qualquer outro subdomínio) também. Então, o seu navegador tenta encontrar www.example.loc da maneira usual, que é perguntando ao (s) servidor (es) de nomes que você configurou. Mas é claro que nenhum servidor de nomes sabe nada sobre esse domínio. Seu Apache local nunca entra em ação dessa maneira;)

Como observação adicional, adicionar nomes a /etc/hosts dessa maneira pode trazer problemas também. A linha 127.0.0.1 example.loc provavelmente substituirá a linha 127.0.0.1 localhost , portanto, você poderá obter problemas ao resolver localhost . Você pode atribuir vários nomes a um ip em uma linha, então o caminho correto seria

127.0.0.1 localhost example.loc www.example.loc
    
por Henning Kockerbeck 05.09.2013 / 23:29