Problema do VirtualHosts e DNS "www" do Apache com base em nome


1

Não sei como resolver meu problema. É que o meu Apache2 está configurado para servir 3 VirtualHosts diferentes. Isso depende dos domínios.

A configuração é:

NameVirtualHost example.eu:80
<VirtualHost example.eu:80>
        DocumentRoot /var/www2
        ServerName www.example.eu
        # Other directives here
</VirtualHost>

NameVirtualHost example.de:80
<VirtualHost example.de:80>
    DocumentRoot /var/www3/drupal
    ServerName www.example.de
</VirtualHost>

NameVirtualHost test.de:80
<VirtualHost test:80>
    DocumentRoot /var/www1/drupal
    ServerName test.de
</VirtualHost>

Se eu for para www.example **. De **, chegarei ao exemplo **. Eu ** (o primeiro VirtualHost configurado). A mesma coisa com test.de. Parece o www. é mal interpretado por essa configuração. O que preciso fazer para que o Apache2 lide com isso corretamente, para que, com e sem "www". Eu chego onde quero - toda vez. Todas as entradas DNS vão para o mesmo IP do servidor Apache2. O servidor deve lidar com as solicitações de acordo. Com e sem o prefixo "www".

Melhor, ww

Respostas:


2

Você entendeu mal o que significa o nome do host na <VirtualHost>diretiva. Refere-se a um endereço IP em que o host virtual "escuta" (o Apache pode resolver os nomes para o endereço IP). Portanto, recomendo uma configuração a seguir:

NameVirtualHost *:80
<VirtualHost *:80>
        DocumentRoot /var/www2
        ServerName example.eu
        ServerAlias www.example.eu
        # Other directives here
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www3/drupal
    ServerName example.de
    ServerAlias www.example.de
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www1/drupal
    ServerName test.de
    ServerAlias www.test.de
</VirtualHost>

Você deve usar NameVirtualHost domain.name:80ou NameVirtualHost 1.2.3.4:80se o seu host virtual ouvir um endereço IP diferente do padrão.


sobreposição VirtualHost padrão na porta 80, a primeira tem precedência - é o que recebo agora. Eu não acho que essa é a solução.
www

Porque você tem um host virtual com cabeçalho como <VirtualHost _default_:80>. Tente desativá-lo.
Gabor Garami
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.