2012-10-21 28 views
7

Eventuali duplicati:
Is it possible to make an ASP.NET MVC route based on a subdomain?Come consentire agli utenti di creare i propri sottodomini sul mio sito Web MVC?

ho intenzione di costruire un sito web che consentirà agli utenti di creare il proprio negozio virtuale, ospitato dal mio sito web.

Pensa a eBay; lasciare che le piccole imprese creino i loro negozi.

Ad esempio:

www.foo.com     - The main website. 
www.georgestires.foo.com - "George's Tires" online store. 

avrei lasciato gli utenti di creare i propri fogli di stile e personalizzazioni in una misura, ma questo è per dopo. In questo momento mi chiedo come implementare questa funzione su un sito Web MVC 3.

Sono letteralmente a terra zero qui senza gambe su cui stare. Qualsiasi consiglio è apprezzato. So che in IIS posso creare un binding sottodominio "bar.foo.com" e avere il flusso diretto verso la mia applicazione ASP.Net MVC3, ma ciò significa che ogni volta che qualcuno crea il proprio store dovrò creare un nuovo programma in modo programmatico rilegatura?

È possibile? Dovrei guardare a questo approccio?

+0

@lazyberezovsky: Grazie per aver collegato questa domanda ma nessuna di quelle risposte è valida per me. I miei "sottodomini" ** non sono conosciuti ** prima del tempo, devono essere dinamici e "creabili" per così dire. Se dovessi registrarti sul sito dovresti essere in grado di creare 'lazyberez.foo.com' senza alcuna interazione da parte mia come proprietario del sito. – sergserg

+0

prova il routing con caratteri jolly –

risposta

7

Il server bind server DNS e Microsoft DNS sia permettere di impostare una wildcard entry che corrisponde ad alcun inesistente voce nel dominio:

*.example.com. 3600 IN CNAME host1.example.com. 

Poi si imposta una regola di riscrittura URL nel IIS che trasforma l'URL del modulo http://subdomain.yourdomain.com/ in, diciamo, http://yourdomain.com/?root=subdomain

Ciò consentirà di gestire questi siti clonati utilizzando un database.

L'unico inconveniente è che DNS system non ti permettono di impostare una wildcard della forma www.*.yourdomain.tld

0

Non so se è possibile nel mondo di Windows per fare collegamento "URL Rewrite" in Apache.

Così la gente vedrebbe: www.georgestires.foo.com ma sarebbe in realtà www.foo.com/georgestires. In questo modo non devi creare un vero sottodominio per ogni account.

0

È necessario il record DNAME che punta al server e configurare semplicemente IIS per accettare tutte le richieste sulla porta 80 e inviare alla propria app. Di controllare l'hostheader per vedere quale dominio in ingresso è.

Ora per SSL avrete bisogno di più lavoro. Ancora una volta il certificato * .mydomain potrebbe funzionare correttamente.

+0

Dovrei creare un record 'DNAME' per ogni singolo potenziale cliente che crea il suo negozio sul mio sito web? Non sembra fattibile. – sergserg

+0

@Serg, controlla il link/[RFC] (http://tools.ietf.org/html/rfc2672) - ne hai solo bisogno uno (meglio del carattere jolly CNAME - che ti dà solo un singolo livello). –

Problemi correlati