Come reindirizzare il dominio A al dominio B utilizzando solo i record A-Record e CNAME


46

Ho 2 domini ospitati con host diversi. Devo reindirizzare il dominio A al dominio B. Sfortunatamente non posso fare un reindirizzamento 301 dall'host A, ma posso solo modificare / aggiungere voci DNS (A-Records e CNAME) sull'host A.

Sicuramente è possibile reindirizzare www.DomainA.com a www.DomainB.com utilizzando solo A-record e CNAME?

Allo stato attuale, le voci DNS sono:

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.

Voglio reindirizzare

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

Ho provato il suggerimento da questo altro post ma non ha funzionato.

Come posso farlo solo con A-Records e CNAME per favore? Grazie per il vostro consiglio.

Prembo.


2
Che tipo di reindirizzamento stai cercando di ottenere? Il DNS non è in grado di agire come un reindirizzamento HTTP in alcun modo: non è possibile modificare l'host a cui un browser sta tentando di accedere nel solo DNS.
Shane Madden

Comprendo che un reindirizzamento 301 è l'ideale, ed è quello che intendiamo fare nel prossimo futuro (purtroppo il dominio A è bloccato con l'host A per altri 50 giorni e non può essere trasferito a causa di un periodo di blocco. E l'host A ha vinto ' ti consente di eseguire il reindirizzamento HTTP a meno che tu non paghi per un 'pacchetto' extra). Quindi, per il momento, stiamo solo cercando di reindirizzare qualsiasi traffico dal dominio A al dominio, prima di spostare il dominio A sull'host B.
Prembo,

1
Il DNS non può reindirizzare. L' unica cosa che DNS può fare è l'alias (un nome è uguale a un altro, come una copia). Non è la stessa cosa dell'invio di persone che arrivano in un posto in un posto diverso.
Chris S,

Grazie per aver chiarito la differenza tra un reindirizzamento HTTP e una risoluzione / delega DNS. Ora capisco.
Prembo,

Risposte:


38

Quindi non stai osservando il reindirizzamento in quanto tale (poiché ciò accade a livello di app, ad esempio su Apache / Nginx / ovunque) ma piuttosto sulla risoluzione DNS. L'host su cui è ospitato DomainA sarà o non dovrebbe mai essere colpito, in base alla descrizione in cui si desidera che le richieste DNS vengano risolte negli IP di DomainB. A meno che non mi manchi qualcosa nella tua richiesta?

Come ha sottolineato Shane, il DNS non è in grado di reindirizzare HTTP - questo è un dovere dell'applicazione / server web. È possibile far sì che DomainA e DomainB si risolvano nello stesso IP su DNS e tutto funzionerebbe. Ma se stai cercando di farlo in base all'URL / per percorso, questo non è possibile - DNS non è in grado di farlo - è un semplice servizio DNS-> IP, ciò che sta accadendo con l'URL effettivo è l'attività del server web.

Dopo il commento qui sotto, quello che farei è fare riferimento a tutti i record DNS per DomainA agli stessi IP di DomainB - in questo modo otterrai una richiesta HTTP che colpisce hostB e quindi è solo una questione di:

  1. creando un particolare host virtuale basato sul nome Apache, che servirà i file dal proprio DocumentRoot
  2. creando reindirizzamenti permanenti su Apache in questo modo:

Ciò riscriverà tutto ciò che arriva a DomainB a DomainA che può essere ospitato sullo stesso server o altrove. Apprezzo che la seconda opzione sia probabilmente un sovraccarico e non necessaria se è possibile / sono autorizzati a creare host virtuali basati sul nome su apache.

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

Andrei con 1. - punto tutti i record DNS di DomainA allo stesso IP (s) che DomainB sta puntando e creerei particolari host virtuali basati su nome su Apache.


Sì, hai capito bene - vedi il mio commento sopra. Quindi quali voci DNS aiuterebbero a raggiungere questo obiettivo? Non c'è web hosting presso l'host A, solo il dominio è tenuto lì. E vogliamo che tutto il traffico verso il dominio A si risolva verso il dominio B ... Molte grazie per il tuo tempo.
Prembo,

È lo stesso dell'aggiunta di ServerAlias domain Ball'host virtuale esistente per domain A?
BadHorsie,

9

Come altri hanno già affermato, non è possibile eseguire il reindirizzamento HTTP con il solo DNS. DNS e HTTP lavorano insieme per reindirizzare un utente da una pagina Web a un'altra.

Puoi utilizzare DNS da solo per fare in modo che il dominio A mostri lo stesso contenuto del dominio B, ma il browser Web mostrerà il dominio A nell'URL. Devi stare molto attento con questo perché è abbastanza male dal punto di vista SEO. Ti metterai nei guai per "contenuti duplicati" e i motori di ricerca ti puniranno per questo.

Il modo corretto (dal punto di vista UX e SEO) per fare questo lavoro è quello di eseguire un reindirizzamento HTTP dal dominio A al dominio B.

Puoi configurare manualmente i tuoi server web (Apache, Nginx, IIS, ecc.) Per fare questo lavoro per te se sei tecnicamente in grado. Ci sono molte buone risorse per aiutarti in tutto il web.

Se non puoi o non vuoi controllare l'infrastruttura, puoi utilizzare un servizio di reindirizzamento URL per eseguire questo lavoro per te. Sono il fondatore di uno chiamato EasyRedir , ma ce ne sono sicuramente altri.


5

Il dominio A deve avere gli stessi indirizzi IP del dominio B. Non è necessario alcun riferimento a B nella definizione di A. I browser Web non "seguono" i CNAME come reindirizzamento, manterranno lo stesso nome host e useranno il record del CNAME per risolvere un indirizzo IP.

Se desideri che B appaia nel browser quando A viene visitato (facoltativo e non correlato a DNS), devi abbinare l'host HTTP e reindirizzare le richieste sul server Web. con Apache, useresti mod_rewrite per farlo in questo modo in una definizione di host virtuale:

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

0

Naturalmente è possibile reindirizzare, con il seguente trucco:

  1. Crea una nuova zona primaria standard
  2. Denominalo come l'URL fittizio che desideri reindirizzare
  3. Assicurarsi che questo nome fittizio sia diverso da qualsiasi nome DNS AD
  4. Crea un record con le seguenti voci:

vuoto ....................... A ......................... ... ip-addr-2

www ......................... Un ....................... ..... ip-addr-2

Ciò che abbiamo qui è il reindirizzamento, essenzialmente. Un URL valido verrà risolto in base alla zona DNS primaria DNS esistente. Un URL fittizio verrà reindirizzato a ip-addr-2. Ciò che è importante è che il nome di questa voce sia vuoto, quindi scenderà alla voce successiva nel record e reindirizzerà a ip-addr-2


-1

Non l'ho provato, ma penso che tu possa farlo:

DomainA.com. CNAME DomainB.com.

Questo è invece di qualsiasi altro record nel file di zona DomainA. Niente SOA, niente.

Non provarlo su un dominio che ti interessa lavorare.


Non credo che questo reindirizzerà la risoluzione dei sottodomini, nonostante tu abbia lasciato fuori la SOA. DNAME è progettato per fare questo, ma per qualche motivo nessuno capisce, CNAME e DNAME si escludono a vicenda.
Falcon Momot,

2
Non puoi posizionare CNAMErecord su domini nudi / apici come domain.com, ma puoi su sottodomini comewww.domain.com
Petrus Theron

Questo non reindirizzerà , risolverà solo www.DomainA.com nell'IP di DomainB; e funziona solo per sottodomini (non dominio nudo0>
Wernight,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.