Usando DNS para redirigir a otra URL con una ruta [cerrada]


120

Estoy intentando redirigir un dominio a otro a través de DNS.

Sé que usar IN CNAME es posible.

www.proof.com IN CNAME www.proof-two.com.

Lo que necesito es una redirección con una ruta. Cuando alguien escribe www.proof.com, debería llevarlo awww.proof-two.com/path/index.htm

Sé que se puede hacer utilizando las instalaciones del servidor web, pero necesito la redirección de DNS.

es posible?


Si está usando el dominio de Google, puede usar su "Reenvío de dominio" en el menú de la izquierda -> Sitio web.
John_J

Respuestas:


136

No, lo que pides no es posible. DNS es un sistema de resolución de nombres y no sabe nada sobre HTTP.


93

si usa AWS, una redirección como

mail.foo.com --> mail.google.com/a/foo.com

se puede configurar de la siguiente manera:

  1. en s3, cree un depósito vacío "mail.foo.com"
  2. en Propiedades -> Alojamiento de sitios web estáticos, configure "redireccionar todas las solicitudes a: mail.google.com/a/foo.com"
  3. en route53, cree un registro A "mail.foo.com"
  4. habilita "alias" y establece el destino de alias en el depósito "mail.foo.com"

no es una solución de DNS pura, pero funciona;)

Pero tenga en cuenta que la redirección omite todos los parámetros de URL, por ejemplo: ...? Param1 = value1 & param2 = value2


3
Esta es una respuesta excelente y muy útil para cualquiera que use AWS. ¡Gracias! Dulce solución
Ken

6
Nota importante: el nombre del depósito debe coincidir con el nombre de host al que se redirige. Ver serverfault.com/a/584714/105720
Jordan Feldstein

1
Esto funciona como una redirección a un directorio, pero no a una página específica. Si redirige todas las solicitudes a "www.example.com/foo/bar/baz.html", AWS agregará "amablemente" una "/" a la URL, convirtiéndola en "www.example.com/foo/bar/baz .html / "y devuelve un error 404.
Earl Ruby

34

Me doy cuenta de que este es un hilo antiguo, pero FWIW, en caso de que alguien más esté buscando una manera de hacer esto.

Si bien dns no comprende la parte de la ruta de la URL, sí comprenderá los subdominios, por lo que en lugar de:

www.proof.com EN CNAME www.proof-two.com/path/index.htm

Podrías usar:

www.proof.com EN CNAME proof.proof-two.com

luego vaya al lugar donde aloje proof-two.com y configúrelo para que apunte a proof.proof-two.com a www.proof-two.com/path/index.htm.

~ siempre hay más de una forma de despellejar a un gato


2
Esto suena como una construcción inútil, en lugar de hacer que proof.proof-two.com apunte a www.proof-two.com/path/index.htm. También podría hacer que www.roof.com apunte allí, no hay necesidad de registros DNS adicionales.
Michiel

12
@Michiel Suena como una construcción inútil si tiene fácil acceso a proof-two.comlos servidores web. A veces, las grandes empresas (y la burocracia) hacen que todo sea mucho más complicado de lo que podría ser.
cregox

1
"luego vaya a donde sea que aloje proof-two.com y configúrelo para que apunte a proof.proof-two.com a www.proof-two.com/path/index.htm" ¿Cómo hacer esto?
user2060451

17

Tengo un proyecto personal que podría ayudarlo a resolver este problema. Es una solución de redireccionamiento de código abierto que le permite redirigir su dominio simplemente cambiando su configuración de DNS. Enlace del proyecto: https://redirect.center/ .

Para redirigir www.proof.com a www.proof-two.com manteniendo los parámetros de URL, simplemente configure su entrada de DNS www en proof.com:

www.proof.com EN CNAME www.proof-two.com.opts-uri.redirect.center.


La pregunta era sobre la redirección a una URL de ruta completa, no solo a un dominio.
Tony Chiboucas

2
Eso todavía no es un camino completo
Tony Chiboucas

2
Se puede admitir una ruta a través del ".opts-slash" del servicio. función. Redirigir jobs.my-domain.com a my-domain.com/jobs Configure su zona DNS de la siguiente manera: Registro de host: trabajos Tipo: CNAME A: www.my-domain.com.opts-slash.jobs.redirect.center
David Turner

1
Esto es realmente genial y simple si su registrador no proporciona redireccionamiento, ¡increíble!
Luca Steeb

1
¡Esto es perfecto! Supuse que existía algo como esto, pero no pude encontrarlo (deben trabajar en su SEO, supongo).
Matt Dodge

11

Realmente es fácil con redirect.center

Si desea crear un CNAME como:

www.proof.com EN CNAME www.proof-two.com/path/index.htm

usando redirect.center su CNAME se ve como modo canónico como:

www.proof.com EN CNAME www.proof-two.com.opts-slash.path.opts-slash.index.htm.redirect.center.

Ahora, si desea redirigir al sitio web https, puede agregar esta opción:

www.proof.com EN CNAME www.proof-two.com.opts-slash.path.opts-slash.index.htm.opts-https.redirect.center.

Ahora puedes crear un CNAME con el modo canónico con barra en tu página de destino.


He estado intentando esto, pero no funciona. Todo lo que hace es redirigir a los usuarios al sitio de redirect.center.
Renan

¿Puedes copiar tu registro CNAME? ¿Puedes copiar tu sitio redirigido también?
Alvaro Aguilar

1
@Renan Asegúrese de que el dominio de origen esté presente en el DNS y pueda ser buscado por el servidor redirect.center; Además, navegar a target-domain.com.redirect.center en el navegador no funcionará. Ver explicación: github.com/udleinati/redirect.center/issues/…
gallineta nórdica

11

Editar

Parece que es mi proveedor (OVH) quien permite ese tipo de redireccionamientos dentro de su infraestructura.

Ver: https://docs.ovh.com/gb/en/domains/redirect-domain-name/

Guardo la respuesta a continuación para archivarla, pero no proporciona ninguna información significativa.

Respuesta original

Hice eso usando un registro TXT.

Para redirigir foo.bar.coma foo2.bar.com/path, simplemente agregue foo IN TXT "1|foo2.bar.com/path"su bar.comzona DNS.

También conserva las rutas y los parámetros de la URL. Entonces, si intenta acceder foo.bar.com/hello?foo=bar, será redirigido a foo2.bar.com/path/hello?foo=bar.


6
¿Podrías desarrollar esto un poco más? ¿Tiene alguna referencia sobre cómo utilizar los registros TXT?
Josiah

¿Esto también mantendrá los parámetros de la URL?
andreas

1
Después de la investigación, parece que OVH lo hace por mí. Ver: ovh.com/fr/g1339.redirection-nom-de-domaine (fr). Actualizaré mi respuesta.
Gabriel

10

Para responder a la pregunta original, no, lo que quieres no es posible usando solo DNS (como todos han dicho). Además de todo lo mencionado anteriormente, otra opción es utilizar un servicio de redirección de URL. Estos tipos de servicios pueden permitirle configurar muchos tipos diferentes de redireccionamientos de URL según sus necesidades. Por ejemplo:

  1. Reenvíe un ápice de dominio a www. subdominio o viceversa
  2. Reenvíe una colección de nombres de dominio a un solo destino (útil para reenviar errores ortográficos de dominio, nombres antiguos de empresas, etc.)
  3. Reenviar nombres de dominio específicos a páginas profundamente vinculadas (como lo que quiere el OP)

Un servicio que hace esto es EasyRedir . Divulgación completa: desarrollé EasyRedir. Sin embargo, ciertamente hay otras opciones, así que te animo a que eches un vistazo.


5

DNS no redirigirá la parte de la ruta de una URL, por lo que no será posible.

Añadiendo

www.proof.com IN CNAME www.proof-two.com

dirigirá el acceso a www.proof.com a www.proof-two.com, donde deberá utilizar la configuración del servidor web para dirigir a los usuarios a la página correspondiente.


4

Mi solución a este problema fue bastante simple y directa. Todo lo que necesita es un servidor IIS que se ejecute dentro del dominio.

Configure CNAME en DNS para que apunte al servidor IIS, utilizando nombres de host en IIS para resolver varios sitios en un solo servidor IIS. Estoy usando el mismo servidor IIS para distribuir algunos subdominios a sitios externos.

Luego, en la configuración de IIS, la redirección de configuración para que ese sitio vaya a su sitio / ruta fuera del sitio, en mi caso, era nuestro catálogo alojado al que quería ir a catalog.ourdomain.com. A partir de aquí, todos los ajustes se realizan en IIS. Asegúrese de habilitar la autenticación anónima para que no se bloquee el tráfico.


3

Supongo que tiene este escenario: tiene un servidor web único que aloja varios sitios web, se supone que cada uno debe presentarse en un dominio separado:

por lo tanto, www.customer1.com debe proporcionar page1.html y así sucesivamente.

  1. cree un subdominio dentro del servidor dns example.com (su servidor web):

    customer1.example.com

  2. en la configuración de su servidor virtual apache, asigne el subdominio al directorio que contiene el sitio web para su cliente # 1, así:

<VirtualHost *:80> SetEnv PAGE_ID "customer1" ServerName customer1.example.com ServerAlias www.customer1.com DocumentRoot /your/local/path/webserver/customer1 </VirtualHost> tenga en cuenta el valor de "ServerAlias", es importante para el siguiente paso:

En este punto, debería poder navegar al sitio web de su cliente1 navegando a:

customer1.example.com

  1. En la configuración de DNS para customer1.com, debe crear un registro CNAME:

    CNAME = www UBICACIÓN = cliente1.example.com

Ahora, está habilitado para usar: www.customer1.com.


3

Un trabajo relacionado concluyó todo lo siguiente:

Problema:

http://a.com/p1/p2.html debería ir a http://B.com/p1/p2.html
hoy, pero más tarde, cuando se configure manualmente / automáticamente, lo mismo
http://a.com/p1 /p2.html debe ir a http://C.com/p1/p2.html

Respuestas:

DNS : convierte el nombre en dirección IP

Aunque puede realizar muchas redirecciones, siempre la salida es la dirección IP. DNS no comprende la ruta o la parte del protocolo de la URL, solo comprende la parte del dominio, es decir, a.com solo se convierte a dirección IP, por lo que cuando presiona http: //a.com/p1/p2.html se puede convertir a http://152.132.121.11/p1/p2.html si configura mal en DNS, entonces obtendrá 152.132.121.11 (no http: //152.132. 121.11 / p1 / p2.html ), por lo que obtendría un error de 400 (400, 403, etc.)

Redirección : esto es http://a.com/p1/p2.html se puede convertir a http://b.com/p1/p2.html

Todos los métodos como GET, POST pueden funcionar, si hay encabezados y cuerpo, pero hay un servidor web involucrado, podría ser un punto de falla, por lo que la escalabilidad y la disponibilidad serán la clave.

Si está en AWS , Route 53 -> API Gateway es posible a través de dominios personalizados, utilizando internamente el Cloud Front

Es posible con Amazon Certification Manager, los dominios personalizados de AWS Gateway y Route53, tenga en cuenta la restricción us-east-1 en ACM

Espero que ayude a alguien



0

Puede usar htaccess rewrite mod, reescribir en la subcarpeta si el usuario está solicitando un dominio específico y no el otro.


-1

Por supuesto que es posible redireccionar, con el siguiente truco:

Cree una nueva zona primaria estándar Nómbrela igual que la URL ficticia a la que desea redirigir Asegúrese de que este nombre ficticio sea diferente a cualquier nombre DNS de AD Cree un registro A con las siguientes entradas:

en blanco ....................... A ......................... ... dirección-ip-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 pasará a la siguiente entrada del registro y redirigirá a ip-addr-2


-4

Todo el mundo ya ha dicho esto, y solo quiero darle otra opción a un servicio que puede ayudarlo. www.301redirect.it es un servicio gratuito que puede redirigir su dominio (con comodines) a cualquier URL de destino.

También quiero agregar una divulgación: soy el desarrollador detrás de este servicio y hay otras opciones disponibles.

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.