Cómo redirigir el dominio A al dominio B utilizando solo registros A y registros CNAME


46

Tengo 2 dominios alojados con diferentes hosts. Necesito redirigir el Dominio A al Dominio B. Lamentablemente, no puedo hacer una redirección 301 desde el Host A, pero solo puedo modificar / agregar entradas DNS (A-Records y CNAME) en el Host A.

¿Seguramente es posible redirigir www.DomainA.com a www.DomainB.com usando solo registros A y CNAME?

En la actualidad, las entradas de DNS son:

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.

Quiero redirigir

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

He intentado la sugerencia de esta otra publicación pero no funcionó.

¿Cómo puedo lograr esto solo con A-Records y CNAME por favor? Gracias por tu consejo.

Prembo


2
¿Qué tipo de redirección estás buscando lograr? DNS no puede actuar como un redireccionamiento HTTP de ninguna manera; no es posible cambiar a qué host está intentando acceder un navegador solo en DNS.
Shane Madden

Entiendo que una redirección 301 es ideal, y eso es lo que pretendemos hacer en el futuro cercano (desafortunadamente, el dominio A está atascado con el Host A durante otros 50 días y no se puede transferir debido a un período de bloqueo. Y el host A ganó " No te permite redireccionar HTTP a menos que pagues un 'paquete' adicional). Entonces, por el momento, solo estamos tratando de redirigir cualquier tráfico de todos modos del dominio A al dominio, antes de mover el dominio A al Host B.
Prembo

1
DNS no puede hacer redirecciones. Lo único que puede hacer DNS es un alias (un nombre se ve igual que otro, como una copia). Eso no es lo mismo que enviar personas que llegan a un lugar a otro.
Chris S

Gracias por aclarar la diferencia entre una redirección HTTP y una resolución / delegación DNS. Entiendo ahora.
Prembo

Respuestas:


38

Por lo tanto, no está buscando la redirección como tal (como sucede en el nivel de la aplicación, es decir, en Apache / Nginx / donde sea) sino en la resolución de DNS. El host en el que está alojado el Dominio A será o nunca será afectado, según su descripción, ya que desea que las solicitudes de DNS se resuelvan en las IP de Dominio B. ¿A menos que me falte algo en su solicitud?

Como señaló Shane, el DNS no es capaz de redireccionar HTTP, eso es un deber de aplicación / servidor web. Podría hacer que DomainA y DomainB se resuelvan a la misma IP en DNS y todo funcionaría. Pero si está buscando hacer esto por URL / por ruta, entonces esto no es posible, el DNS no es capaz de eso, es un simple servicio DNS-> IP, lo que sucede con la URL real es la tarea del servidor web.

Después del comentario a continuación, lo que haría es remitir todos los registros DNS para el Dominio A a la (s) misma (s) IP (s) a las que se señala el Dominio B; de esta manera, obtendrá la solicitud HTTP que golpea al host B y luego es solo una cuestión de:

  1. crear un host virtual basado en nombre Apache particular, que servirá archivos desde su propio DocumentRoot
  2. creando redirección permanente en Apache de esta manera:

Esto reescribirá todo lo que venga a DomainB a DomainA que se pueda alojar en el mismo servidor o en otro lugar. Aprecio que la segunda opción sea probablemente una sobrecarga y no necesaria si puedes / puedes crear hosts virtuales basados ​​en nombres en Apache.

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

Iría con 1. - apunte todos los registros DNS de DomainA a las mismas IP (s) que señala DomainB y creará VirtualHosts basados ​​en nombres particulares en Apache.


Sí, lo entiendes correctamente, mira mi comentario más arriba. Entonces, ¿qué entradas de DNS ayudarían a lograr ese objetivo? No hay alojamiento web en el Host A, solo el dominio se mantiene allí. Y queremos que todo el tráfico al dominio A se resuelva en el dominio B ... Muchas gracias por su tiempo.
Prembo

¿Es esto lo mismo que agregar ServerAlias domain Bal host virtual existente domain A?
BadHorsie

9

Como han dicho otros, no es posible realizar la redirección HTTP solo con DNS. DNS y HTTP trabajan juntos para redirigir a un usuario de una página web a otra.

Puede usar DNS por sí mismo para que el dominio A muestre el mismo contenido que el dominio B, pero el navegador web mostrará el dominio A en la URL. Debe tener mucho cuidado con esto, ya que es bastante malo desde una perspectiva de SEO. Te meterás en problemas por "contenido duplicado", y los motores de búsqueda te castigarán por ello.

La forma correcta (desde una perspectiva de UX y SEO) de hacer que esto funcione es realizar una redirección HTTP del dominio A al dominio B.

Puede configurar manualmente sus servidores web (Apache, Nginx, IIS, etc.) para hacer este trabajo por usted si es técnicamente capaz. Hay muchos buenos recursos para ayudar con eso en la web.

Si no puede o no desea controlar la infraestructura, puede utilizar un servicio de redireccionamiento de URL para realizar este trabajo por usted. Soy el fundador de uno llamado EasyRedir , pero ciertamente hay otros.


5

El dominio A debe tener las mismas direcciones IP que en el dominio B. No hay necesidad de ninguna referencia a B en la definición de A. Los navegadores web no "siguen" a CNAME como redireccionamiento, mantendrán el mismo nombre de host y usarán el propio registro de CNAME para resolverlo en una dirección IP.

Si desea que B aparezca en el navegador cuando se visita A (opcional y no relacionado con DNS), debe hacer coincidir el host HTTP y redirigir las solicitudes en el servidor web. con Apache, usaría mod_rewrite para hacerlo así en una definición de host virtual:

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

0

Por supuesto, es posible redirigir, con el siguiente truco:

  1. Crear una nueva zona primaria estándar
  2. Nómbrelo como la URL ficticia a la que desea redirigir
  3. Asegúrese de que este nombre ficticio sea diferente de cualquier nombre DNS de AD
  4. Cree un registro con las siguientes entradas:

en blanco ....................... A ......................... ... ip-addr-2

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

Lo que tenemos aquí es la redirección, esencialmente. Una URL válida se resolverá en función de la zona DNS primaria DNS existente. Una URL ficticia será redirigida a ip-addr-2. Lo importante es que el nombre de esta entrada esté en blanco, por lo que caerá a la siguiente entrada en el registro y redirigirá a ip-addr-2


-1

No lo he probado, pero creo que puedes hacer esto:

DomainA.com. CNAME DomainB.com.

Esto es en lugar de cualquier otro registro en el archivo de zona DomainA. No SOA, nada.

No intente esto en un dominio que le interese trabajar.


No creo que esto redirija la resolución de los subdominios, a pesar de que omita el SOA. DNAME está diseñado para hacer esto, pero por alguna razón nadie lo entiende, CNAME y DNAME son mutuamente excluyentes.
Falcon Momot

2
No puede colocar CNAMEregistros en dominios desnudos / apex como domain.com, pero puede en subdominios comowww.domain.com
Petrus Theron

Esto no redirigirá , solo resolverá www.DomainA.com a la IP de DomainB; y solo funciona para subdominios (no dominio desnudo0>
Wernight
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.