So leiten Sie Domain A nur mit A-Records- und CNAME-Records auf Domain B um

46

Ich habe 2 Domains mit verschiedenen Hosts gehostet. Ich muss Domain A zu Domain B umleiten. Leider kann ich keine 301-Umleitung von Host A durchführen, sondern nur DNS-Einträge (A-Records und CNAMEs) auf Host A ändern / hinzufügen.

Sicher ist es möglich, www.DomainA.com nur mit A-Records und CNAMEs auf www.DomainB.com umzuleiten?

Derzeit sind die DNS-Einträge:

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.

Ich möchte umleiten

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

Ich habe den Vorschlag aus diesem anderen Beitrag ausprobiert, aber es hat nicht funktioniert.

Wie kann ich das bitte nur mit A-Records und CNAMEs erreichen? Danke für deinen Rat.

Prembo.

Prembo
quelle
2
Welche Art von Weiterleitung möchten Sie erreichen? DNS ist nicht handlungsfähig wie ein HTTP - Umleitung in irgendeiner Weise - es ist nicht möglich, zu ändern , was Host ein Browser für den Zugriff auf DNS allein versucht.
Shane Madden
Ich verstehe, dass eine 301-Weiterleitung ideal ist, und wir beabsichtigen, dies in naher Zukunft zu tun (leider bleibt Domain A für weitere 50 Tage bei Host A hängen und kann aufgrund einer Sperrfrist nicht übertragen werden. Und Host A hat gewonnen. ' Sie können keine HTTP-Weiterleitung durchführen, es sei denn, Sie zahlen für ein zusätzliches "Paket". So einstweilen, versuchen wir , nur keinen Verkehr in irgendeiner Weise aus der Domäne A zu Domäne umleiten, bevor wir Domäne A über zu Host B bewegen
Prembo
1
DNS kann keine Weiterleitungen durchführen. Das einzige, was DNS tun kann, ist ein Alias ​​(ein Name sieht genauso aus wie ein anderer, wie eine Kopie). Das ist nicht dasselbe wie Menschen, die an einem Ort ankommen, an einen anderen Ort zu schicken.
Chris S
Vielen Dank, dass Sie den Unterschied zwischen einer HTTP-Umleitung und einer DNS-Auflösung / -Delegierung geklärt haben. Ich verstehe jetzt.
Prembo

Antworten:

38

Es geht also nicht um die Umleitung als solche (wie dies auf App-Ebene der Fall ist, dh auf Apache / Nginx / wherever), sondern um die DNS-Auflösung. Der Host, auf dem DomainA gehostet wird, wird oder sollte niemals getroffen werden, basierend auf Ihrer Beschreibung, da die DNS-Anforderungen in die IPs von DomainB aufgelöst werden sollen. Es sei denn, ich vermisse etwas in Ihrer Anfrage?

Wie Shane betonte, ist DNS nicht in der Lage, HTTP umzuleiten - das ist eine Anwendungs- / Webserverpflicht. Sie könnten DomainA und DomainB auf die gleiche IP auf DNS auflösen lassen, und alle würden funktionieren. Wenn Sie dies jedoch auf einem URL- / Pfad-Weg tun möchten, ist dies nicht möglich - DNS ist dazu nicht in der Lage - es ist ein einfacher DNS-> IP-Dienst. Was mit der tatsächlichen URL geschieht, ist die Aufgabe des Webservers.

Nach dem folgenden Kommentar würde ich alle DNS-Einträge für DomainA auf dieselben IP-Adressen verweisen, auf die DomainB verweist. Auf diese Weise wird eine HTTP-Anfrage an HostB gesendet, und dann ist es nur noch eine einfache Sache:

  1. Erstellen eines bestimmten auf Apache-Namen basierenden virtuellen Hosts, der Dateien von seinem eigenen DocumentRoot-Server bereitstellt
  2. Erstellen einer permanenten Weiterleitung auf Apache wie folgt:

Dadurch wird alles, was zu DomainB kommt, in DomainA umgeschrieben, das auf demselben Server oder an einem anderen Ort gehostet werden kann. Ich schätze, dass die zweite Option wahrscheinlich ein Mehraufwand ist und nicht erforderlich ist, wenn Sie auf Apache name-basierte virtuelle Hosts erstellen können / dürfen.

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

Ich würde mit 1. gehen - zeigen Sie alle DNS-Einträge von DomainA auf die gleichen IPs, auf die DomainB zeigt, und erstellen Sie bestimmte namensbasierte virtuelle Hosts auf Apache.

gyre
quelle
Ja, du verstehst das richtig - siehe meinen Kommentar oben. Welche DNS-Einträge würden dazu beitragen, dieses Ziel zu erreichen? Es gibt kein Webhosting bei Host A, nur die Domain wird dort gehalten. Wir möchten, dass der gesamte Datenverkehr zu Domain A zu Domain B aufgelöst wird. Vielen Dank für Ihre Zeit.
Prembo
Entspricht dies dem Hinzufügen von ServerAlias domain Bzum vorhandenen virtuellen Host für domain A?
BadHorsie
9

Wie andere angegeben haben, ist es nicht möglich, die HTTP-Umleitung nur mit DNS durchzuführen. DNS und HTTP arbeiten zusammen, um einen Benutzer von einer Webseite auf eine andere umzuleiten.

Sie können DNS alleine verwenden, um Domain A den gleichen Inhalt wie Domain B anzeigen zu lassen, aber der Webbrowser zeigt Domain A in der URL an. Sie müssen sehr vorsichtig sein, da es aus SEO-Sicht ziemlich schlecht ist. Sie bekommen Ärger wegen "doppelter Inhalte" und Suchmaschinen werden Sie dafür bestrafen.

Die richtige Methode (aus UX- und SEO-Sicht), um diese Funktion auszuführen, besteht darin, eine HTTP-Umleitung von Domäne A zu Domäne B durchzuführen.

Sie können Ihre Webserver (Apache, Nginx, IIS usw.) manuell konfigurieren, um diese Arbeit für Sie zu erledigen, wenn Sie technisch in der Lage sind. Es gibt viele gute Ressourcen, die dabei helfen können.

Wenn Sie die Infrastruktur nicht steuern können oder möchten, können Sie einen URL-Umleitungsdienst verwenden, um diesen Auftrag für Sie auszuführen. Ich bin der Gründer von EasyRedir , aber es gibt sicherlich noch andere.

wgrrrr
quelle
5

Domäne A muss die gleichen IP-Adressen wie Domäne B haben. In der Definition von A ist kein Verweis auf B erforderlich. Webbrowser "folgen" CNAMEs nicht als Umleitung, sondern behalten denselben Hostnamen bei und verwenden den eigenen Eintrag des CNAME, um eine IP-Adresse aufzulösen.

Wenn Sie möchten, dass B beim Besuch von A im Browser angezeigt wird (optional und unabhängig von DNS), müssen Sie den HTTP-Host abgleichen und die Anforderungen auf dem Webserver umleiten. Mit Apache würden Sie mod_rewrite verwenden, um dies in einer virtuellen Host-Definition zu tun:

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

Natürlich ist es möglich, mit dem folgenden Trick umzuleiten:

  1. Erstellen Sie eine neue Standardprimärzone
  2. Nennen Sie es genauso wie die fiktive URL, zu der Sie umleiten möchten
  3. Stellen Sie sicher, dass sich dieser fiktive Name von jedem AD-DNS-Namen unterscheidet
  4. Erstellen Sie einen Datensatz mit folgenden Einträgen:

leer ....................... A ......................... ... ip-addr-2

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

Was wir hier haben, ist im Wesentlichen die Umleitung. Eine gültige URL wird basierend auf der vorhandenen primären DNS-Zone aufgelöst. Eine fiktive URL wird an ip-addr-2 weitergeleitet. Wichtig ist, dass der Name dieses Eintrags leer ist, sodass er auf den nächsten Eintrag im Datensatz abfällt und zu ip-addr-2 umleitet

Bran Kop
quelle
-1

Ich habe es nicht ausprobiert, aber ich denke, Sie können dies tun:

DomainA.com. CNAME DomainB.com.

Dies ist überhaupt kein anderer Datensatz in der DomainA-Zonendatei. Keine SOA, nichts.

Versuchen Sie dies nicht auf einer Domain, die Ihnen am Herzen liegt.

wfaulk
quelle
Ich glaube nicht, dass dies die Auflösung von Subdomains umleiten wird, obwohl Sie die SOA weglassen. DNAME wurde dafür entwickelt, aber aus irgendeinem Grund versteht niemand, dass CNAME und DNAME sich gegenseitig ausschließen.
Falcon Momot
2
Sie können keine CNAMEDatensätze auf Naked / Apex-Domains wie platzieren domain.com, aber Sie können auf Subdomains wiewww.domain.com
Petrus Theron
Dies wird nicht umgeleitet , es wird nur www.DomainA.com auf die IP von DomainB lösen; und es funktioniert nur für Sub-Domains (nicht nackt domain0>
Wernight