Tatsächlich arbeite ich an einer SaaS-Anwendung, in der ich Abonnenten eine eigene Subdomain für den Zugriff auf ihre Informationen geben möchte (im Code werde ich den ersten Teil der Subdomain zur Verwendung als Kontoname abrufen), ähnlich wie bei Basecamp et al Arbeit. Beispielsweise kann ein Abonnent die URL haben acme.myapp.com
. Da es Hunderte von Abonnenten geben kann, kann ich nicht einfach für jeden Client einen anderen Host-Header hinzufügen.
Mit Apache können Sie einen Platzhalter (*) angeben und acme.myapp.com an myapp.com umleiten, wobei ich meine Logik ausführen kann, um den Kontonamen des Benutzers basierend auf der Subdomain abzurufen. Ich bin mir nicht sicher, wie ich das automatisch mit IIS machen soll (es ist eine Weile her, seit ich IIS für etwas anderes als eine einzelne Website konfigurieren musste).
Gibt es auch spezielle Bestimmungen, die ich dazu benötige? Benötige ich etwas Spezielles vom Host, das meine Auswahl einschränkt, wenn meine App fertig ist und ich das Hosting dafür in Betracht ziehe? Ich habe auch überlegt, Windows Azure zu verwenden, um die Cloud zu nutzen. Würde ich dies trotzdem tun können, wenn ich Azure als Hosting-Plattform verwenden würde?
quelle
Antworten:
Wie Joe bereits erwähnt hat, würden Sie dies eher mit DNS als mit IIS tun.
IIS unterstützt keine * .domain.com-Platzhalterdomänen. Stattdessen würden Sie eine Site in IIS erstellen, die keine Host-Header enthält, und auf alle Anforderungen auf dieser IP antworten, die nicht von anderen Sites mit Host-Headern erfasst wurden. Anschließend erstellen Sie Ihren Platzhalter-DNS-Eintrag, um auf die IP-Adresse dieser Site zu verweisen, und fertig.
quelle
Wenn ich Sie richtig verstehe, können Sie DNS verwenden, um dies zu tun. Angenommen, myapp.com ist Ihre Domain, fügen Sie in Ihrer DNS-Zone myapp.com einfach einen CNAME-Eintrag (acme) hinzu, der auf den A-Eintrag für Ihre Website verweist (www.myapp.com). Dadurch werden sie an Ihre Hauptwebsite gesendet, wo Ihr Code sie übernimmt und an die entsprechende Anwendung weiterleitet.
Sie können auch einen DNS-Platzhaltereintrag (*) verwenden, der alles abfängt, z. B. acme.myapp.com, joeschmoe.myapp.com usw.
quelle