Wie man Sub-Domain-Benutzerkonten in einer Webapp machen

stimmen
21

Ich bin auf der Suche , damit die Benutzer von Sub - Domain einer App steuern , mit denen ich spiele, ähnlich wie Basecamp , wo es ist customusername.seework.com.

Was ist auf dem erforderliche DNSEnde dieser dynamisch und sofort zur Verfügung erstellt werden können.

Und wie würden Sie empfehlen mit diesem in der Logik der Website zu tun? HtaccessRegel der Sub - Domain in dem Nachschlag DB?

Veröffentlicht am 04/08/2008 um 13:22
quelle vom benutzer
In anderen Sprachen...                            


4 antworten

stimmen
13

Die Art, wie wir dies tun, ist ein ‚catch all‘ haben für unsere Domain-Namen in DNS registriert, so dass anything.ourdomain.com auf unseren Server verweisen.

Mit Apache können Sie einen ähnlichen Allheilmittel für alle Ihre vhosts einrichten. Der Servername muss ein einzelner statischer Name sein, aber die Direktive Serveralias ein Muster enthalten kann.

Servername www.ourdomain.com
ServerAlias *.ourdomain.com

Jetzt alle Domänen die vhost für unser Projekt auslösen. Der letzte Teil ist der Domain-Name tatsächlich verwendet zu dekodieren, so dass Sie den Benutzernamen in Ihrem Code arbeiten können, so etwas wie (PHP):

list( $username ) = explode( ".", $_SERVER[ "HTTP_HOST" ] );

oder eine RewriteRule wie bereits vorgeschlagen, dass leise Karten user.ourdomain.com/foo/bar www.ourdomain.com/foo/bar?user=user oder was auch immer Sie bevorzugen.

Beantwortet am 04/08/2008 um 14:39
quelle vom benutzer

stimmen
8

Sorgen Sie sich nicht über DNS und URL-Rewriting

Ihr DNS-Eintrag wird statisch, so etwas wie:

*.YOURDOMAIN.COM A 123.123.123.123

Fragen Sie Ihren DNS-Anbieter es für Sie tun (wenn es nicht bereits getan hat) oder tun es selbst, wenn Sie die Kontrolle über Ihre DNS-Einträge haben. Dies wird automatisch alle Sub-Domains (aktuelle und zukünftige sind) in den gleichen HTTP-Server verweisen.

Sobald das erledigt ist, werden Sie nur zu erkennen, müssen HOST-Header auf jeder einzelnen HTTP-Anforderung analysieren, welche Hostnamen verwendet wurde Ihre serverseitigen Skripts auf dem HTTP-Server zugreifen zu können.

Angenommen, Sie ASP.NET verwenden, ist diese Art von dummen Beispiel kam ich mit, aber Werke und zeigt Einfachheit dieses Ansatzes:

<%@ Language="C#" %>
<%
string subDomain = Request.Url.Host.Split('.')[0].ToUpper();
if (subDomain == "CLIENTXXX") Response.Write("Hello CLIENTXXX, your secret number is 33");
else if (subDomain == "CLIENTYYY") Response.Write("Hello CLIENTYYY, your secret number is 44");
else Response.Write(subDomain+" doesn't exist");
%>
Beantwortet am 04/08/2008 um 13:32
quelle vom benutzer

stimmen
2

Der Trick , um das heißt URL verwenden , Umschreiben , so dass name.domain.com transparent abbildet , so etwas wie domain.com/users/name auf Ihrem Server. Sobald Sie diesen Weg beginnen nach unten, dann ist es ziemlich trivial zu implementieren.

Beantwortet am 04/08/2008 um 13:28
quelle vom benutzer

stimmen
0

Ich war auf der Suche etwas Ähnliches zu tun ( www.mysite.com/SomeUser).

Was ich tat , war ich bearbeitet 404.shtmldiese Server - Seite enthalten sind (SSI) Code:

<!--#include virtual="404.php" -- >

Dann habe ich die Datei 404.php, wo ich die URL analysiert für den Namen des Benutzers zu überprüfen und zeigte ihre Informationen aus der Datenbank.

Beantwortet am 12/10/2009 um 16:28
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more