Bir webapp alt alan kullanıcı hesapları nasıl yapılır

oy
21

Kullanıcıların öyle çok Basecamp gibi oynuyor ediyorum bir uygulama, bir alt alan olarak kontrol edilmesi açısından arıyorum customusername.seework.com.

Ne gereklidir DNSbu dinamik oluşturulmasına izin ve anında kullanılabilir olmasını sonunda.

Ve nasıl sitenin mantığında bu başa tavsiye edersiniz? Htaccessalt alanı arama için kural DB?

Oluştur 04/08/2008 saat 13:22
kaynak kullanıcı
Diğer dillerde...                            


4 cevaplar

oy
13

Bunu yapmak yolu bizim sunucuya işaret eder anything.ourdomain.com böylece DNS kaydının bizim alan adı için bir 'catch all' sahip olmaktır.

Apache ile size sankonlar için de benzer tümünü yakalama ayarlayabilirsiniz. ServerName tek bir statik ismi olmalı ama ServerAlias ​​yönergesi bir desen içerebilir.

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

Şimdi alanın da tüm projemizin vHost tetikleyecektir. Son bölüm kodunuzda adınızı çalışmak, böylece gerçekte kullanılan alan adını deşifre etmek, (PHP) gibi bir şey:

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

veya RewriteRule olarak zaten sessizce user.ourdomain.com/foo/bar www.ourdomain.com/foo/bar?user=user ya da her türlü tercih eşleştiren önerdi.

Cevap 04/08/2008 saat 14:39
kaynak kullanıcı

oy
8

DNS ve URL yeniden yazma konusunda endişelenmeyin

DNS kaydı statik olacak gibi bir şey:

*.YOURDOMAIN.COM A 123.123.123.123

(Zaten bitmiş değilse) sizin için bunu yapmak için DNS sağlayıcınıza sorun veya DNS kayıtları üzerinde kontrol sahibi olmadığını kendiniz yapmak. Bu otomatik olarak aynı HTTP sunucusu içine tüm alt etki alanlarını (şimdiki ve gelecekteki olanları) işaret edecektir.

Tamamlandığında, yalnızca http sunucuda sunucu tarafı komut dosyalarını erişmek için kullanılan ne hostname algılamak için her http istek üzerine HOST başlığını ayrıştırmak gerekir.

Eğer ASP.NET kullandığınız varsayarak, bu şimdiye ancak işler ile geldi ve bu yaklaşımın basitlik göstermektedir saçma örnek türüdür:

<%@ 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");
%>
Cevap 04/08/2008 saat 13:32
kaynak kullanıcı

oy
2

Buna hile URL yeniden yazma böylece kullanmaktır name.domain.com şeffaf gibi bir şey eşleştiren domain.com/users/name Sunucunuzda. Eğer bu yolda başladığınızda, uygulamak oldukça Önemsiz.

Cevap 04/08/2008 saat 13:28
kaynak kullanıcı

oy
0

Benzer bir şey (yapmaya bakıyordu www.mysite.com/SomeUser).

Yaptığım şey ben düzenlenmiş oldu 404.shtmlbu sunucu tarafı kodunu (SSI) kodu dahil etmek:

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

Sonra dosyayı oluşturdu 404.phpBir kullanıcı adının olup olmadığını kontrol etmek URL'yi ayrıştırılır ve veritabanından kendi bilgilerine gösterdi.

Cevap 12/10/2009 saat 16:28
kaynak kullanıcı

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