apache httpd.conf - configuração virtualhost

2

Sou novo no apache e no httpd.conf

O problema que estou tendo é que eu preciso de um site diferente para ir para diferentes configurações vhost e se apenas o IP for solicitado, ele precisa ir para o index.html raiz

Isso funciona bem para o virtualhosts:

<VirtualHost *:80>
    DocumentRoot /var/www/html/bali-accommodation.co
    ServerName www.bali-accommodation.co
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www/html/balibeach.co
    ServerName www.balibeach.co
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www/html/dating-website.co
    ServerName www.dating-website.co
</VirtualHost>

No entanto, quando especifico o IP, ele é feito para www.XXX.XXX.XXX.XXX (anexa o www).

Eu sei que nos sites há um redirecionamento .htaccess que adiciona o www, mas eu não queria que o IP entrasse na configuração do vhosts.

Eu tentei adicionar isso ao topo da configuração do Vhost:

<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerName localhost
</VirtualHost>

acima mostra o index.html perfeitamente, mas todos os sites entram nessa lista.

Eu também tentei isso para os sites vhosts:

    DocumentRoot /var/www/html/bali-accommodation.co     NomeDoServidor www.bali-accommodation.co

Eu tentei o acima com e sem o 'www' na primeira linha sem sucesso.

Existe uma maneira de fazer com que os vhosts funcionem para os domínios e, se alguém digitar o IP, ele vai para o index.html raiz? /var/www/html/index.html?

obrigado muito Adam

    
por Adam 18.12.2012 / 22:44

1 resposta

3

O Apache pesquisa os vhosts na ordem em que são definidos para uma correspondência. Se nenhum outro host for correspondido em uma diretiva ServerName ou ServerAlias, o Apache servirá o primeiro vhost que foi definido. Você pode definir um vhost catchall como o último

<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerName SomeName
    ServerAlias *
</VirtualHost>

Isto irá corresponder a qualquer coisa.

    
por 18.12.2012 / 22:56