¿Hay alguna manera de redirigir un dominio a otro a través de la configuración de DNS manteniendo la información de la ruta?

26

Por ejemplo, mi dominio es example.comy cuando alguien navega example.com/sample/page.htm, quiero que redirija a test.com/sample/page.htm.

Sé que esto probablemente se puede hacer fácilmente usando un .htaccessarchivo o una página 404. Sin embargo, estoy buscando una solución que no requiera que mi proveedor de DNS aloje ningún archivo para mí.

Quiero hacer esto solo con la configuración de DNS, por ejemplo:

  • Registros CNAME
  • Un registros
  • 301 reenvío
  • (falta cualquier otra configuración de DNS)

¿Hay alguna forma de hacer esto?

Sensato
fuente
Creo que lo que quería era más una configuración comodín, pero no creo que se pueda implementar en este punto sin redireccionamientos.
Tim Post
¿Alguien puede dar una respuesta clara y simple sobre esto .... :(
@fatty, ¿qué no entiendes?
John Conde

Respuestas:

12

Puede hacer que example.com/test.com resuelva el mismo servidor web (IP) a través de dns (CNAME si lo desea) y eso funcionaría.

Si está buscando hacer esto por ruta, entonces no. DNS ignora cosas como URL. DNS simplemente está traduciendo la parte del host de la url (example.com) a la dirección IP. El servidor web se encarga de averiguar qué (o dónde) se supone que debe resolver la URL. Creo que tendría que hacer esto en el nivel del servidor web (http).

Thomas
fuente
1
Sí, si configura el CNAME en example.com, no tiene que alojar nada por ejemplo.com. Simplemente configure el host de test.com para responder para example.com, luego use mod_rewrite o URL Rewriting en test.com para detectar el nombre de host de example.com y reescribir para sí mismo. Sin embargo, esto puede ser peligroso; es mejor tener example.com tener su propio vhost en el servidor test.com, con solo reglas de redireccionamiento.
JasonBirch
8

Como se ha señalado, esto no se puede hacer completamente con DNS. Sin embargo, si tiene el DNS, por ejemplo.com se refiere al mismo servidor que test.com, es muy sencillo configurar Apache para lograr lo que desea hacer. Solo agregue lo siguiente:

<VirtualHost *:80>
  ServerName example.com
  Redirect permanent / http://test.com/
</VirtualHost>

Esto reescribirá cualquier enlace entrante a example.com a un enlace para test.com, conservando la ruta.

Además, su proveedor de DNS no necesita alojar ningún archivo para usted, ya que esto solo se basa en el servidor web que ya está ejecutando para test.com.

Kris
fuente
O simplemente agregue las directivas ServerAlias ​​al archivo de host virtual de test.com.
Michael Clerx
3

No puede hacer esto solo a través de DNS. Las redirecciones 301 no son cosa de DNS. Son una cosa de servidor web.

Lo que puede hacer es apuntar sus entradas DNS de example.com al mismo servidor que test.com y configurar example.com como un dominio de alias para test.com.

intlect
fuente
3

Aquí está la .htaccessregla exacta que uso para redirigir todas las solicitudes de www.midominio.com a midominio.com (ya que la más corta es mi URL canónica):

RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://mydomain.com/$1 [R=301,L]

Eso es bastante fácil de modificar para redirección desde foo.comque foobar.com, preservando al mismo tiempo la solicitud, el cliente sólo se pone una redirección 301 para el dominio apropiado.

Sin embargo, no puede hacer esto 'solo' con DNS, como han dicho otros, los servidores DNS simplemente resuelven los FQDN en direcciones IP.

Tim Post
fuente
Usé esto, pero tuve que eliminar la última barra diagonal en su segunda línea ( RewriteRule ^(.*)$ http://mydomain.com$1 [R=301,L]) o agregaría dos barras diagonales a la URL redirigida. ¿Alguien más ha experimentado eso?
julien_c