Como redirecionar o domínio A para o domínio B usando apenas registros A-Records e CNAME

38

Eu tenho 2 domínios hospedados com hosts diferentes. Eu preciso redirecionar o Domínio A para o Domínio B. Infelizmente, não posso fazer um redirecionamento 301 do Host A, mas só posso modificar / adicionar entradas de DNS (A-Records e CNAMEs) no Host A.

Certamente, é possível redirecionar www.DomainA.com para www.DomainB.com usando apenas registros A e CNAMEs?

Atualmente, as entradas de DNS são:

DomainA.com.    3600    IN    SOA       ns1.HostA.net.
www             3600    IN    CNAME     www.DomainB.com.    
DomainA.com.    3600    IN    NS        ns1.HostA.net.  
DomainA.com.    3600    IN    NS        ns2.HostA.net.  
DomainA.com.    3600    IN    NS        ns3.HostA.net.

Eu quero redirecionar

DomainA.com -> DomainB.com
*.DomainA.com -> *.DomainB.com

Experimentei a sugestão deste outro post mas não funcionou.

Como posso conseguir isso apenas com A-Records e CNAMEs, por favor? Obrigado pelo seu conselho.

Prembo.

    
por Prembo 04.05.2012 / 01:25

5 respostas

36

Portanto, você não está olhando para o redirecionamento como tal (como isso acontece no nível do aplicativo, ou seja, no Apache / Nginx / where), mas na resolução do DNS. O host no qual o DomainA está hospedado será ou nunca deve ser atingido, com base em sua descrição, pois você deseja que as solicitações de DNS sejam resolvidas para os IPs do DomainB. A menos que eu esteja faltando algo em seu pedido?

Como Shane apontou, o DNS não é capaz de redirecionar HTTP - isso é um dever de aplicação / servidor web. Você poderia fazer DomainA e DomainB resolverem o mesmo IP no DNS e tudo funcionaria. Mas se você estiver procurando fazer isso por URL / caminho de caminho, isso não é possível - o DNS não é capaz disso - é um serviço simples de DNS - > IP, o que está acontecendo com a URL real é a tarefa do servidor web .

Após o comentário abaixo, o que eu faria é referir todos os registros DNS para DomainA ao mesmo IP (s) que o DomainB está apontado - desta forma você receberá o pedido HTTP para o hostB e então é apenas uma questão simples. de:

  1. criando um host virtual específico do Apache Name Baseed - que servirá arquivos de seu próprio DocumentRoot
  2. criando redirecionamento permanente no Apache assim:

Isto irá reescrever qualquer coisa que venha a DomainB para DomainA, que pode ser hospedada no mesmo servidor ou em outro lugar. Eu aprecio que a segunda opção é provavelmente uma sobrecarga e não é necessária se você puder / tiver permissão para criar hosts virtuais baseados em nome no apache.

<VirtualHost *:80>
  ServerName DomainB
  Redirect permanent / http://DomainA/
</VirtualHost>

Eu escolheria 1. - apontar todos os registros DNS de DomainA para o (s) mesmo (s) IP (s) que o DomainB está apontando e criar determinados VirtualHosts baseados em nome no Apache.

    
por 04.05.2012 / 01:49
9

Como outros afirmaram, não é possível realizar o redirecionamento HTTP apenas com o DNS. DNS e HTTP trabalham juntos para redirecionar um usuário de uma página para outra.

Você pode usar o DNS sozinho para que o domínio A mostre o mesmo conteúdo que o domínio B, mas o navegador da Web mostrará o domínio A no URL. Você precisa ter muito cuidado com isso, pois é muito ruim do ponto de vista de SEO. Você terá problemas com "conteúdo duplicado" e os mecanismos de pesquisa o castigarão por isso.

A maneira correta (de uma perspectiva de UX e SEO) de fazer isso funcionar é realizar um redirecionamento HTTP do Domínio A para o Domínio B.

Você pode configurar manualmente seus servidores web (Apache, Nginx, IIS, etc.) para fazer isso funcionar se você for tecnicamente capaz. Existem muitos recursos bons para ajudar com isso na Web.

Se você não puder ou não quiser controlar a infraestrutura, poderá usar um serviço de redirecionamento de URL para realizar esse trabalho para você. Eu sou o fundador de um chamado EasyRedir , mas com certeza há outros.

    
por 12.10.2015 / 03:00
4

O domínio A precisa ter os mesmos endereços IP que no domínio B. Não há necessidade de qualquer referência a B na definição de A. Os navegadores da Web não "seguem" os CNAMEs como redirecionamento, eles manterão o mesmo nome de host e usarão o próprio registro do CNAME para resolver um endereço IP.

Se desejar que B apareça no navegador quando A for visitado (opcional e não relacionado ao DNS), você precisará corresponder ao Host HTTP e redirecionar as solicitações no servidor da Web. com o Apache, você usaria mod_rewrite para fazer isso em uma definição de host virtual:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domainB.com$
RewriteRule ^/(.*)$ http://www.domainA.com/$1 [R=301,L]
    
por 05.05.2012 / 04:24
0

Claro que é possível redirecionar, com o seguinte truque:

  1. Crie uma nova zona primária padrão
  2. Nomeie como o URL fictício para o qual você deseja redirecionar
  3. Verifique se esse nome fictício é diferente de qualquer nome DNS do AD
  4. Criar um registro com as seguintes entradas:

branco ....................... A ...................... ...... ip-addr-2

www ......................... A .................... ........ ip-addr-2

O que temos aqui é redirecionamento, essencialmente. Um URL válido será resolvido com base na zona DNS primária do DNS existente. Um URL fictício será redirecionado para ip-addr-2. O importante é que o nome desta entrada esteja em branco, então cairá para a próxima entrada no registro e redirecionará para ip-addr-2

    
por 17.11.2015 / 23:07
-1

Eu não tentei, mas eu acho que você pode fazer isso:

DomainA.com. CNAME DomainB.com.

Isto é, em vez de qualquer outro registro no arquivo de zona DomainA. Não SOA, nada.

Não tente isso em um domínio que você gosta de trabalhar.

    
por 05.05.2012 / 00:01