Gibt es eine Möglichkeit, eine Domain über DNS-Einstellungen zu einer anderen umzuleiten, wobei die Pfadinformationen erhalten bleiben?

26

Zum Beispiel ist meine Domain example.comund wenn jemand zu navigiert example.com/sample/page.htm, möchte ich, dass sie weitergeleitet wird test.com/sample/page.htm.

Ich weiß, dass dies wahrscheinlich leicht mit einer .htaccessDatei oder einer 404-Seite gemacht werden kann. Ich bin jedoch auf der Suche nach einer Lösung, bei der mein DNS-Anbieter keine Dateien für mich bereitstellen muss.

Ich möchte dies nur mit DNS-Einstellungen tun, zB:

  • CNAME-Einträge
  • A Aufzeichnungen
  • 301 Weiterleitung
  • (alle anderen DNS-Einstellungen fehlen mir)

Gibt es eine Möglichkeit, dies zu tun?

Sinnvoll
quelle
Ich denke, was Sie wollten, war eher ein Wildcard-Setup, aber ich glaube nicht, dass es an dieser Stelle ohne Weiterleitungen implementiert werden kann.
Tim Post
Kann jemand eine klare und einfache Antwort dazu geben .... :(
@fatty, was verstehst du nicht?
John Conde

Antworten:

12

Sie könnten example.com/test.com über dns (CNAME, wenn Sie möchten) auf denselben Webserver (IP) auflösen lassen, und das würde funktionieren.

Wenn Sie dies auf Pfadbasis tun möchten, wählen Sie no. DNS kennt Dinge wie URL nicht. DNS übersetzt einfach den Host-Teil der URL (example.com) in eine IP-Adresse. Der Webserver muss herausfinden, was (oder wo) die URL auflösen soll. Ich glaube, Sie müssten dies auf der Ebene des Webservers (http) tun.

Thomas
quelle
1
Ja, wenn Sie den CNAME auf example.com einrichten, müssen Sie für example.com nichts hosten. Stellen Sie einfach den test.com-Host so ein, dass er auf example.com antwortet, und verwenden Sie dann mod_rewrite oder URL Rewrite auf test.com, um den Hostnamen von example.com zu erkennen und sich selbst neu zu schreiben. Dies kann jedoch gefährlich sein. Besser, example.com hat einen eigenen vhost auf dem test.com-Server, der nur Umleitungsregeln enthält.
JasonBirch
8

Wie bereits erwähnt, ist dies mit DNS nicht vollständig möglich. Wenn Sie jedoch den DNS für example.com auf denselben Server wie test.com verweisen lassen, ist es sehr einfach, Apache so zu konfigurieren, dass die gewünschten Aktionen ausgeführt werden. Fügen Sie einfach Folgendes hinzu:

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

Dadurch wird jeder eingehende Link zu example.com in einen Link für test.com umgeschrieben, wobei der Pfad beibehalten wird.

Darüber hinaus muss Ihr DNS-Anbieter keine Dateien für Sie hosten, da dies nur auf dem Webserver beruht, den Sie bereits für test.com ausführen.

Kris
quelle
Oder fügen Sie einfach ServerAlias-Anweisungen zur virtuellen Host-Datei von test.com hinzu.
Michael Clerx
3

Sie können dies nicht allein über DNS tun. 301-Weiterleitungen sind keine DNS-Sache. Sie sind eine Webserver-Sache.

Sie können Ihre example.com-DNS-Einträge auf denselben Server wie test.com verweisen und example.com als Aliasdomäne für test.com einrichten.

intlect
quelle
3

Hier ist die genaue .htaccessRegel, die ich verwende, um alle Anfragen von www.meinedomain.com an meinedomain.com umzuleiten (da die kürzere meine kanonische URL ist):

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

Das ist leicht genug , um Umleitung so zu ändern , foo.comzu foobar.com, während die Anfrage zu bewahren, der Kunde erhält nur eine 301 - Weiterleitung auf die entsprechende Domäne.

Sie können dies jedoch nicht "nur" mit DNS tun, wie andere gesagt haben, DNS-Server lösen nur FQDNs in IP-Adressen auf.

Tim Post
quelle
Ich habe dies verwendet, musste aber den letzten Schrägstrich in Ihrer zweiten Zeile ( RewriteRule ^(.*)$ http://mydomain.com$1 [R=301,L]) entfernen, da sonst der umgeleiteten URL zwei Schrägstriche hinzugefügt würden. Hat das noch jemand erlebt?
Julien_c