80 votes

Comment rediriger un domaine A vers un domaine B en utilisant uniquement des enregistrements A et CNAME ?

J'ai 2 domaines hébergés chez des hébergeurs différents. J'ai besoin de rediriger le domaine A vers le domaine B. Malheureusement, je ne peux pas faire de redirection 301 à partir de l'hôte A, mais je ne peux que modifier/ajouté des entrées DNS (A-Records et CNAMEs) sur l'hôte A.

Il est certainement possible de rediriger www.DomainA.com vers www.DomainB.com en utilisant uniquement des enregistrements A et des CNAME ?

Actuellement, 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 suivante autre poste mais ça n'a pas marché.

Comment puis-je y parvenir uniquement avec des A-Records et des CNAMEs, s'il vous plaît ? Merci pour vos conseils.

Prembo.

50voto

milosgajdos Points 1778

Il ne s'agit donc pas d'une redirection en tant que telle (car cela se passe au niveau de l'application, c'est-à-dire sur Apache/Nginx/ou autre) mais plutôt d'une résolution DNS. L'hôte sur lequel est hébergé le domaine A ne sera ou ne devrait jamais être touché, d'après votre description, car vous voulez que les requêtes DNS soient résolues vers les IP du domaine B. À moins que je ne manque quelque chose dans votre demande ?

Comme Shane l'a souligné, le DNS n'est pas capable de rediriger les données HTTP - c'est une tâche qui incombe aux applications et aux serveurs Web. Vous pouvez faire en sorte que DomaineA et DomaineB soient résolus par la même IP sur le DNS et tout fonctionnera. Mais si vous cherchez à faire cela 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, ce que je ferais, c'est de référencer tous les enregistrements DNS pour le domaine A vers la ou les mêmes IP que celles vers lesquelles pointe le domaine B. De cette façon, vous obtiendrez des requêtes HTTP qui atteindront l'hôte B, et il suffira ensuite de les traiter :

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

Cela réécrira tout ce qui arrive à DomainB vers DomainA qui peut être hébergé sur le même serveur ou ailleurs. Je comprends que la seconde option est probablement une surcharge et n'est pas nécessaire si vous pouvez ou êtes autorisé à créer des hôtes virtuels basés sur le nom sur Apache.

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

Je choisirais la première option : faire pointer tous les enregistrements DNS de DomainA vers les mêmes IP que celles de DomainB et créer des VirtualHosts particuliers basés sur le nom sur Apache.

12voto

wgrrrr Points 121

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

Vous pouvez utiliser le DNS seul 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 problèmes de "contenu dupliqué" et les moteurs de recherche vous puniront pour cela.

La façon correcte (d'un point de vue UX et SEO) de faire fonctionner ce système est d'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 fassent ce travail à votre place si vous en êtes techniquement capable. Il existe de nombreuses ressources intéressantes pour vous aider dans ce domaine sur le Web.

Si vous ne pouvez 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 d'un service appelé EasyRedir mais il y en a certainement d'autres.

7voto

Kl4m Points 353

Le domaine A doit avoir les mêmes adresses IP que 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 les CNAME en tant que redirection, ils conservent le même nom d'hôte et utilisent l'enregistrement propre au CNAME pour se résoudre à une adresse IP.

Si vous souhaitez que B apparaisse dans le navigateur lorsque A est visité (optionnel et sans rapport avec le DNS), vous devez faire correspondre l'hôte HTTP et rediriger les requêtes 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]

0voto

shakalaca Points 111

Je ne l'ai pas essayé, mais je pensez à vous pouvez le faire :

DomainA.com. CNAME DomainB.com.

Ceci à la place de tout autre enregistrement dans le fichier de zone de DomainA. Pas de SOA, rien.

N'essayez pas cela sur un domaine dont le fonctionnement vous importe.

0voto

Bran Kop Points 11

Bien sûr, il est possible de rediriger, avec l'astuce suivante :

  1. Créer une nouvelle zone primaire standard
  2. Nommez-le de la même façon que l'URL fictive vers laquelle vous voulez rediriger.
  3. Veillez à ce que ce nom fictif soit différent de tout nom ADS.
  4. Créez un enregistrement avec les entrées suivantes :

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

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

Ce que nous avons ici est une redirection, essentiellement. Une URL valide sera résolue sur la base de la zone DNS primaire existante. Une URL fictive sera redirigée vers ip-addr-2. Ce qui est important, c'est que le nom de cette entrée est vide, de sorte qu'il va tomber sur l'entrée suivante dans l'enregistrement et rediriger vers ip-addr-2.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X