Wie verweist man eine externe Domäne auf eine Subdomäne?

Wie verweist man eine externe Domäne auf eine Subdomäne?

Ich habe die Domäne example.comund habe den Ubuntu-Apache-Server so eingerichtet, dass er jede Subdomäne auf ein gleichnamiges Verzeichnis verweist.

<VirtualHost *:80>
    ServerAlias *.example.com
    VirtualDocumentRoot /var/www/html/%1
</VirtualHost>

Ich werde also subdomain.example.comauf verweisen example.com/subdomain.

Ich versuche, Benutzern zu ermöglichen, ihre eigene benutzerdefinierte Domäne auf eine Subdomäne ihrer Wahl zu verweisen. Wie könnte ich dies erreichen und welche Datensätze wären erforderlich und was müsste mit derVirtueller Host?

Ich habe folgenden Datensatz probiert:

  • sampledomain.example(CNAMEDatensatz) - @-->sample.example.com
  • sampledomain.example (ADatensatz) - @--> ( IPAdresse von example.com)

Ich habe auch versucht, wwwfür den CNAME zu verwenden und gleichzeitig das zu entfernen A record.

sample.example.comverweist erfolgreich auf example.com/sample. Verhält sich jedoch sampledomain.exampleaus irgendeinem Grund wie die Stammsite.

Wenn ich also besuche sampledomain.example/sample, erhalte ich den Inhalt von, example.com/sampleanstatt auf zu verweisen sample.example.com.

Wie kann ich das lösen? Welche Datensätze werden benötigt und was kann mit dem virtuellen Host gemacht werden?

Ich habe einen CNAME-Eintrag verwendet, damit ich den benutzerdefinierten Domänennamen über PHP abrufen kann, wenn der Benutzer diesen besucht. Ist der CNAME erforderlich?

Antwort1

Wenn Sie damit einverstanden sind, dies auf Anfrage Ihres Kunden manuell zu tun, ist dies ganz einfach. Sie müssen lediglich ServerAlias sampledomain.comdie Vhost-Konfiguration ergänzen und die Webserver-Konfiguration neu laden.

Wenn Sie jedoch möchten, dass Ihre Kunden dies selbst in einer Art Kundenkontrollschnittstelle tun, ist dies aufgrund der Funktionsweise virtueller Hosts auf einem Webserver nicht ohne weiteres möglich. Hier ist der Grund:

Wenn Sie einen DNS-Eintrag (unabhängig davon, ob Aoder CNAME) haben, der sampledomain.comauf Ihren Webserver verweist, sendet der Browser eine Anfrage an die IP-Adresse Ihres Servers mit dem Hostauf gesetzten HTTP-Header sampledomain.com. Der Webserver verwendet diesen Header, um zu entscheiden, welcher virtuelle Host dies handhaben soll, und wenn sampledomain.comweder ein virtueller Hostname noch ein Alias ​​ist, wird die Anfrage, wie Sie erfahren haben, vom Standard-virtuellen Host beantwortet.

Um dies zu ermöglichen, müssen Ihre Kunden Aliase für ihren virtuellen Host konfigurieren können. Mit Apache ist dies nicht einfach, aber theoretisch können Sie dies aus einer Datenbank lesen, wie erklärtHier(Ich habe das noch nie ausprobiert und habe daher keine Ahnung, ob es funktioniert.)

Auch Dinge wieVirtualMinkönnte in einem solchen Fall hilfreich sein.

verwandte Informationen