Subdomain.example.org zu etwas weiterleiten, das dem Benutzer verborgen bleibt?

9

Ich bin überhaupt nicht über kenntnisreich C-NAMES, A-RECORDS, Nameserver und dergleichen, so einfach mit mir trägt auf diese:

Ich möchte subdomain.example.org auf eine andere Domain umleiten. Ich besitze beide Domains und beide Domains laufen auf Shared Hosting. Wenn ich eine Subdomain erstelle, kann ich sofort eine HTTP-Umleitung (302, yuck!) Oder eine Frame-Umleitung durchführen.
Ich kann die DNS-Einträge auch auf einem Host wie dem Nameserver einstellen, CNAMEaber ich hätte eine Ahnung, was ich tue.

Bitte erklären Sie mir , wie mit Namen - Servern funktionieren Routing und , wie ich soll (wenn auch nicht möglich , mit meinem aktuellen Host) Umleitung subdomain.example.org zu somethingelse.com mit der Benutzer sichtbaren URL Reservierung bei „subdomain.example.org“

Dennis G.
quelle

Antworten:

8

Nameserver leiten nichts weiter. Nameserver antworten auf Anfragen nach Namen und geben schließlich eine IP zurück. CNAME-Datensätze geben einen Namen zurück, der dann nachgeschlagen wird, um die IP zu erhalten. Das einzige, was Sie wirklich mit Ihren DNS-Einträgen tun können, ist sicherzustellen, dass Ihr Name festgelegt ist und die IP-Adresse eines Servers zurückgibt, der den Datenverkehr akzeptiert und das tut, was Sie wollen.

Wenn Sie den Webserver mit einem namenbasierten virtuellen Hosting somethingelse.comeinrichten und der Hauptname für diesen virtuellen Host lautet, können Sie einen zusätzlichen Namen für diesen virtuellen Host festlegen subdomain.example.org. In DNS legen Sie die Einträge so fest, dass die IP des virtuellen Hosts zurückgegeben wird somethingelse.com.

Auf der Website, auf der gehostet wird, somethingelse.commüssen, wo immer möglich, relative Links verwendet werden. Andernfalls wird der Benutzer schnell feststellen, dass sie jetzt auf eine andere Domain umgestellt wurden.

... das ist der entscheidende Punkt. Wie würde ich das machen?

Erstellen Sie einfach einen A-Datensatz, der einen Namen mit einer IP verknüpft, oder einen CNAME-Datensatz, der auf einen A-Datensatz verweist, der auf die gewünschte IP verweist.

DNS weiß nichts. Was Sie verlangen, muss auf dem HTTP-Server behandelt werden.

Andernfalls könnte ich meine Domain auf google.com verweisen und sie so aussehen lassen, als wäre sie meine Website?

Sie können einen DNS-Eintrag auf eine beliebige IP-Adresse verweisen. Bei HTTP enthält ein Teil der Anforderung den Hostnamen, auf den Sie zugreifen möchten. Die Google-Webserver können sich dafür entscheiden, basierend auf dem Hostnamen, der Teil der HTTP-Anforderung ist, abzulehnen.

Das Einrichten eines DNS-Namens, der auf die Server von Google verweist, wird sogar unterstützt, wenn Sie Google Apps-Kunde sind. Es gibt ein Verfahren, das Sie am häufigsten befolgen, um Google mitzuteilen, welchen Namen Sie für eine bestimmte Seite verwenden werden. Google passt dann ihre Konfiguration entsprechend an.

Wenn Sie ein anderes Protokoll verwenden, das den für den Zugriff verwendeten Hostnamen nicht enthält, kann der Server nicht wissen, was was ist. Sie können dies ganz einfach selbst testen, indem Sie einen Eintrag wie erstellen googledns.example.org IN A 8.8.8.8und dann ping googledns.example.orgden DNS-Server von Google ausführen, der auf den Ping reagiert. Der Name, den Sie für den Ping-Befehl verwendet haben, ist in einer ICMP-Echoantwort überhaupt nicht enthalten, sondern nur die IP-Adresse.

Zoredache
quelle
"In DNS legen Sie die Einträge so fest, dass die IP des virtuellen Hosts zurückgegeben wird, der Somethingelse.com bedient." <- das ist der entscheidende Punkt. Wie würde ich das machen? Ich kann mir vorstellen, dass es nicht möglich sein sollte, "meine Domain auf eine andere IP zu lenken". Andernfalls könnte ich meine Domain auf google.com verweisen und sie so aussehen lassen, als wäre sie meine Website?
Dennis G
Das Problem mit A-Datensätzen ist Cloud-Hsps. Es wird zur Norm. Ich muss einen Weg finden, um subdomain.domain.com zu new.domain.com umzuleiten, damit es scheinbar aussieht und sogar Cookie-Werte übergibt.
Yardpenalty.com
4

Warum können Sie nicht einfach eine .htaccess-Datei (mit einer 301-Umleitung) in dem Ordner einrichten, in dem sich der Submmain befindet?

Zum Beispiel:

  1. Erstellen Sie eine .htaccess-Datei im Ordner example.org/subdomain
  2. Richten Sie Ihre Subdomain in Cpanel basierend auf dem obigen Ordner ein
  3. Bearbeiten Sie diese neue .htaccess-Datei und fügen Sie den folgenden Code hinzu

    Weiterleiten 301 / http://somethingelse.com

Mit / als Stammverzeichnis Ihrer Subdomain und http://somethingelse.com als Speicherort .

Funktioniert bei mir.

HandyMick
quelle
3
Ich könnte, wie ich auch im OP geschrieben habe. Dies verbirgt jedoch nichts, da die Weiterleitung vom Benutzer immer noch gesehen wird. Der einzig wahre Weg ist die Verwendung von DNS, um die Subdomain der anderen Domain zuzuordnen.
Dennis G
1

Die einzige vollständige Lösung besteht darin, einen Webserver so einzurichten, dass er auf "subdomain.example.org" wartet und ihn mit HTTP-Umleitung zu "Somethingelse.com" umleitet.

Wenn Sie einen c-Namen verwenden, um "subdomain.example.org" auf "Somethingelse.com" zu verweisen, spricht der Webbrowser mit dem Webserver über "Somethingelse.com", es wird jedoch "Ich suche nach Subdomain.example" angezeigt. org "für die es möglicherweise nicht konfiguriert ist. Wenn Sie den Webserver so konfigurieren können, dass beide URLs akzeptiert werden, funktioniert cname einwandfrei.

Patrick
quelle
Bitte noch etwas Einblick. Wenn ich meinen CNAME auf subdomain.example.org-> etwaselse.com konfiguriere, brauche ich nur etwaselse.com, um diesen CNAME zu akzeptieren? Wie heißt das? A-Record, ein Nameserver-Wechsel? Was wird eigentlich benötigt ...
Dennis G
1

DNS-Weiterleitungen mit CNAMES funktionieren auf einem gemeinsam genutzten Host nicht so, wie Sie es möchten.

Angenommen, Sie haben für unsere Zwecke einen 'CNAME'-Datensatz für subdomain.example.org, der auf Somethingelse.com verweist, und einen' A'-Datensatz für Somethingelse.com. Wenn Sie subdomain.example.com besuchen, wird zuerst ein DNS-Server abgefragt, um die richtige IP-Adresse zu ermitteln. Der DNS-Server sieht den CNAME-Eintrag und ermittelt rekursiv die IP-Adresse für Somethingelse.com, die dann an Ihren Desktop zurückgegeben wird.

Ihr Browser wird dann diese IP-Adresse kontaktieren und nach subdomain.example.com fragen. Tatsächlich weiß es nicht einmal, dass etwas anderes existiert.

Wenn Sie eine dedizierte Box hätten, könnten Sie CNAMEs dazu bringen, so zu arbeiten, wie Sie es sich vorstellen, aber Sie würden die Möglichkeit verlieren, einen namensbasierten virtuellen Host zu verwenden. Bei IP-basierten vhosts wird jede Domain, die auf eine bestimmte IP verweist, denselben Inhalt bereitstellen.

Damit die Adressleiste Ihres Browsers "subdomain.example.org" anzeigt, während die Seite von Somethingelse.com bereitgestellt wird, können Sie die von Ihrem Host bereitgestellte Frame-Weiterleitung überdenken.

Eine andere Möglichkeit, wenn Ihr Host mod_proxy bereitstellt, besteht darin, einen Reverse-Proxy in der virtualhost-Konfiguration von subdomain.example.com einzurichten:

ProxyPass / http://somethingelse.com/
ProxyPassReverse / somethingelse.com/

Dies führt dazu, dass subdomain.example.com den Inhalt von someelse.com bereitstellt, während subdomain.example.com weiterhin als Quelldomäne gemeldet wird.

Calman
quelle
Ja, das war es, was ich befürchtet hatte, auf einem gemeinsam genutzten Host zu sein, da der andere Server nicht einmal eine dedizierte IP-Adresse hat, da viele Hosts dieselbe teilen ... Am Ende ist die rahmenbasierte Umleitung nichts anderes als ein HTML Seite mit frame srcSatz auf die andere Domäne - das kann ich mit tun , iframewie gut und und lief in domänenübergreifende Probleme (zB Internet Explorer Cookies nicht zu akzeptieren)
Dennis G