Configuração do apache baseada em nome

1

O que eu estou tentando fazer é mostrar uma página quando um domínio é visitado, mas se alguém tentar visitar diretamente por ip (e não usando o domínio), eu quero mostrar a ele outra página.

Hospedagem apache baseada em nome clássico, certo?

Bem, minha única pergunta é o que devo colocar em ServerName e / ou ServerAlias?

O que eu fiz até agora é descomentar esta linha:

NameVirtualHost *:80

e eu configurei 2 hosts virtuais como este (informações específicas ocultas):

<VirtualHost *:80>
        ServerAdmin [email protected]
        DocumentRoot /var/www/vhosts/default/
        ServerName {my-dedicated-ip}
        ErrorLog /var/www/vhosts/default/error.log
        CustomLog /var/www/vhosts/default/custom.log gk
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/vhosts/something/httpdocs/
    ServerName valid-domain.com
    ServerAlias *.valid-domain.com
    ErrorLog "| /usr/sbin/rotatelogs -l /var/www/vhosts/something/logs/error.log.%Y.%m.%d 86400"
    CustomLog "| /usr/sbin/rotatelogs -l /var/www/vhosts/somthing/logs/custom.log.%Y.%m.%d 86400" gk
</VirtualHost>

mas infelizmente não funciona.

Obrigado antecipadamente.

EDIT: Ah, e eu tenho um único ip dedicado.

Também encontrei isto: Como posso fazer com que o Apache não responda a uma solicitação somente de IP? de acordo com a qual minha configuração deve funcionar. Deve visitar o primeiro vhost que encontrar. Mas isso não acontece. Vai para o segundo.

EDITAR: saída apachectl -S:

[root@me conf.d]# apachectl -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
         default server domain.com (/etc/httpd/conf/httpd.conf:1015)
         port 80 namevhost {my-dedicated-ip} (/etc/httpd/conf/httpd.conf:1015)
         port 80 namevhost valid-domain.com (/etc/httpd/conf/httpd.conf:1023)
                 wild alias *.vaild-domain.com
Syntax OK

e sim os 2 vhosts estão no mesmo arquivo.

    
por GktrGR 30.06.2014 / 13:21

1 resposta

1

No Apache 2.2, você designa um host virtual padrão com a diretiva _default_ que deve corresponder tanto para o endereço IP quanto para todos os nomes de domínio que não são explicitamente definidos como ServerName ou ServerAlias nas entradas subseqüentes do VirtualHost.

Por exemplo:

<VirtualHost _default_:80>
        DocumentRoot /var/www/vhosts/default/
        ServerName default
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /var/www/vhosts/something/httpdocs/
    ServerName valid-domain.com
</VirtualHost>
    
por 30.06.2014 / 13:38