Comment rediriger le domaine A vers le domaine B en utilisant uniquement les enregistrements A-Records et CNAME

46

J'ai 2 domaines hébergés avec des hôtes différents. J'ai besoin de rediriger le domaine A vers le domaine B. Malheureusement, je ne peux pas effectuer de redirection 301 à partir de l'hôte A, mais je ne peux que modifier / ajouter des entrées DNS (enregistrements A et CNAME) sur l'hôte A.

Il est sûrement possible de rediriger www.DomainA.com vers www.DomainB.com en utilisant uniquement les enregistrements A et les CNAME.

À l'heure actuelle, les entrées DNS sont:

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.

Je veux rediriger

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

J'ai essayé la suggestion de cet autre message mais cela n'a pas fonctionné.

Comment est-ce que je peux réaliser ceci seulement avec A-Records et CNAMEs s'il vous plaît? Merci pour votre conseil.

Prembo.

Prembo
la source
2
Quel type de redirection envisagez-vous? DNS n'est en aucun cas capable d'agir comme une redirection HTTP - il n'est pas possible de changer l'hôte auquel un navigateur tente d'accéder dans DNS seul.
Shane Madden
Je comprends qu'une redirection 301 est idéale et c'est ce que nous avons l'intention de faire dans un avenir proche (malheureusement, le domaine A est bloqué avec l'hôte A pendant 50 jours supplémentaires et ne peut pas être transféré en raison d'une période de lock-out. Et l'hôte A a gagné » Ne vous laissez pas rediriger HTTP sauf si vous payez pour un «paquet» supplémentaire). Donc, pour le moment, nous essayons simplement de rediriger le trafic de n'importe quel domaine d'un domaine à un autre, avant de transférer le domaine A vers l'hôte B.
Prembo,
1
DNS ne peut pas faire de redirections. La seule chose que DNS puisse faire est un alias (un nom a la même apparence qu'un autre, comme une copie). Ce n'est pas la même chose que d'envoyer des personnes qui arrivent d'un endroit à un autre.
Chris S
Merci de clarifier la différence entre une redirection HTTP et une résolution / délégation DNS. Je comprends maintenant.
Prembo

Réponses:

38

Donc, vous ne regardez pas la redirection en tant que telle (comme cela se produit au niveau de l'application, c'est-à-dire sur Apache / Nginx / où que ce soit), mais plutôt sur la résolution DNS. L'hôte sur lequel DomainA est hébergé sera ou ne devrait jamais être touché, en fonction de votre description car vous souhaitez que les demandes DNS soient résolues en adresses IP de DomainB. À moins que je manque quelque chose dans votre demande?

Comme Shane l'a souligné, le DNS n'est pas capable de redirection HTTP - c'est un devoir pour les applications / serveurs Web. Vous pouvez faire en sorte que DomainA et DomainB résolvent à la même adresse IP sur DNS et tout fonctionnerait. Mais si vous cherchez à le faire par URL / par chemin, ce n'est pas possible - le DNS n'en est pas capable - c'est un simple service DNS-> IP, ce qui se passe avec l'URL réelle est la tâche du serveur Web.

Après le commentaire ci-dessous, je préférerais que tous les enregistrements DNS de DomainA soient référencés sur la même adresse IP que celle désignée par DomainB. De cette manière, vous obtiendrez une requête HTTP sur hostB et vous n'aurez plus qu'à choisir:

  1. création d'un hôte virtuel Apache Name Baseed particulier - qui servira des fichiers à partir de son propre DocumentRoot
  2. créer une redirection permanente sur Apache comme ceci:

Cela réécrira tout ce qui vient de DomainB sur DomainA et qui peut être hébergé sur le même serveur ou ailleurs. J'apprécie le fait que la deuxième option est probablement une surcharge et n'est pas nécessaire si vous pouvez / êtes autorisé à créer des hôtes virtuels basés sur un nom sur Apache.

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

J'irais avec 1. - pointer tous les enregistrements DNS de DomainA sur la même adresse IP que DomainB pointe et créer des hôtes virtuels nominatifs particuliers sur Apache.

gyre
la source
Oui vous avez bien compris - s'il vous plaît voir mon commentaire ci-dessus. Alors, quelles entrées DNS aideraient à atteindre cet objectif? Il n'y a pas d'hébergement Web chez l'hôte A, seul le domaine y est hébergé. Et nous voulons que tout le trafic du domaine A soit résolu en domaine B ... Merci beaucoup pour votre temps.
Prembo
Est-ce la même chose que d'ajouter ServerAlias domain Bà l'hôte virtuel existant pour domain A?
BadHorsie
9

Comme d'autres l'ont déjà indiqué, il n'est pas possible d'effectuer une redirection HTTP avec DNS seul. DNS et HTTP fonctionnent ensemble pour rediriger un utilisateur d'une page Web vers une autre.

Vous pouvez utiliser le DNS lui-même pour que le domaine A affiche le même contenu que le domaine B, mais le navigateur Web affichera le domaine A dans l'URL. Vous devez être très prudent avec cela car c'est assez mauvais du point de vue du référencement. Vous aurez des ennuis pour le "contenu en double" et les moteurs de recherche vous puniront pour cela.

La manière correcte (du point de vue de l'UX et du référencement) de rendre ce travail efficace consiste à effectuer une redirection HTTP du domaine A vers le domaine B.

Vous pouvez configurer manuellement vos serveurs Web (Apache, Nginx, IIS, etc.) pour qu’ils s’acquittent de cette tâche pour vous, si vous en êtes techniquement capable. Il existe de nombreuses ressources utiles sur le Web pour vous aider.

Si vous ne pouvez pas ou ne voulez pas contrôler l'infrastructure, vous pouvez utiliser un service de redirection d'URL pour effectuer ce travail à votre place. Je suis le fondateur de celui qui s'appelle EasyRedir , mais il y en a certainement d'autres.

wgrrrr
la source
5

Le domaine A doit avoir les mêmes adresses IP que dans le domaine B. Il n'est pas nécessaire de faire référence à B dans la définition de A. Les navigateurs Web ne "suivent" pas la redirection des CNAME, ils conserveront le même nom d'hôte et utiliseront leur propre enregistrement pour se transformer en adresse IP.

Si vous souhaitez que B apparaisse dans le navigateur lors de la visite de A (facultatif et non lié à DNS), vous devez faire correspondre l'hôte HTTP et rediriger les demandes sur le serveur Web. avec Apache, vous utiliseriez mod_rewrite pour le faire comme ceci dans une définition d'hôte virtuel:

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

Bien sûr, il est possible de rediriger, avec le truc suivant:

  1. Créer une nouvelle zone primaire standard
  2. Nommez-le de la même manière que l'URL fictive vers laquelle vous souhaitez rediriger
  3. Assurez-vous que ce nom fictif est différent de tout nom DNS AD
  4. Créer un enregistrement avec les entrées suivantes:

vide ....................... A ......................... ... ip-addr-2

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

Ce que nous avons ici est essentiellement une redirection. Une URL valide sera résolue en fonction de la zone DNS primaire DNS existante. Une URL fictive sera redirigée vers ip-addr-2. Ce qui est important, c’est que le nom de cette entrée soit vide, il sera donc redirigé vers la prochaine entrée de l’enregistrement et redirigé vers ip-addr-2.

Bran Kop
la source
-1

Je n'ai pas essayé, mais je pense que vous pouvez faire ceci:

DomainA.com. CNAME DomainB.com.

Cela remplace tout autre enregistrement dans le fichier de zone DomainA. Pas de SOA, rien.

N'essayez pas cela dans un domaine que vous aimez travailler.

wfaulk
la source
Je ne crois pas que cela va rediriger la résolution des sous-domaines, malgré votre abandon de la SOA. DNAME est conçu pour cela, mais pour une raison quelconque, personne ne comprend, CNAME et DNAME s’excluent mutuellement.
Falcon Momot
2
Vous ne pouvez pas placer d’ CNAMEenregistrements sur des domaines nus / apex domain.com, mais sur des sous-domaines tels quewww.domain.com
Petrus Theron
Cela ne redirigera pas , cela résoudra uniquement www.DomainA.com en IP de DomainB; et cela ne fonctionne que pour les sous-domaines (pas de domaine nue0>
Wernight, le