Redirecionar o endereço IP para o nome real com o Apache

4

Eu quero que quando as pessoas acessarem meu servidor da web com o endereço IP, como http://10.0.0.1 , sejam redirecionadas para o nome do domínio, como http://example.com . Estou usando o Apache Web Server e tentei:

<VirtualHost 10.0.0.1:80>
    Redirect / http://example.com
</VirtualHost>

que gerou um loop de redirecionamento infinito porque tem prioridade mais alta que

<VirtualHost *:80>
    ServerName example.com
    ...
</VirtualHost>

que é o host virtual que, em última instância, quero veicular.

Eu também tentei

<VirtualHost 10.0.0.1:80>
    ServerName 10.0.0.1
    Redirect / http://example.com
</VirtualHost>

pensando que talvez corresponda apenas a http://10.0.0.1 , mas não http://example.com . Mas também gera um loop infinito. Alguma idéia de como conseguir isso?

A razão pela qual o host virtual de IP não é o principal e único host virtual é porque eu quero que outros IPs no servidor também possam servir example.com .

    
por pupeno 22.07.2009 / 00:07

3 respostas

5

HD respondeu deu uma boa regra de reescrita, mas você deve colocar uma condição antes disso. Certifique-se de que haja apenas um host virtual em execução em 10.10.10.1 e que sua definição seja semelhante à seguinte:

<VirtualHost 10.0.0.1:80>
    ServerName servername.com
    .....

    RewriteCond %{SERVER_NAME} 10.10.10.1
    RewriteRule /(.*) http://servername.com/$1 [R=301,L]

</VirtualHost>

Dessa forma, você só precisa de um host virtual para esse endereço IP em vez do que estava tentando fazer acima. NOTA: Se você vai ter mais de um host virtual neste servidor, você precisa colocar o resto em diferentes IPs

    
por 23.07.2009 / 13:27
1

Eu tento a mesma configuração e funciona bem. Tem certeza de que não há outra definição que entre em conflito com seus hosts virtuais? Qual é o erro nos logs do apache?

Esta regra também funciona:

RewriteRule ^(.*)$ http://example.com/$1 [R=301,NC]
    
por 22.07.2009 / 00:35
0

Em .htaccess , adicione o seguinte:

RewriteCond %{HTTP_HOST} ^123\.123\.123\.123
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
    
por 21.03.2016 / 12:45