2012-10-21 19 views
7

可能性の重複:
Is it possible to make an ASP.NET MVC route based on a subdomain?MVC Webサイトでユーザーが独自のサブドメインを作成する方法を教えてください。

私は、ユーザーが自分のウェブサイトが主催する、独自の仮想店舗を作成することができますウェブサイトを構築するつもりです。

Think eBay;中小企業が店舗を作ることができます。例えば

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

私は、ユーザーがある程度自分のスタイルシートとカスタマイズを作成できますが、それは後のためです。今私はMVC 3のWebサイトでこの機能を実装する方法について疑問に思っています。

私は文字通り地面に立っています。任意のすべてのアドバイスをいただければ幸いです。私はIISで私は "bar.foo.com"サブドメインのバインディングを作成してASP.Net MVC3アプリケーションにその直接的な流れを持たせることができますが、それは誰かが自分の店を作るたびに私はプログラムで新しいバインディング?

これは可能ですか?私はそのアプローチを検討すべきでしょうか?

+0

@ lazyberezovsky:その質問をリンクしていただきありがとうございますが、それらの回答はどれも私に当てはまりません。私の "サブドメイン" **は事前に知られていません**彼らは動的で創造的なものである必要があります。サイトに登録する場合は、サイトの所有者として私からのやり取りなしに 'lazyberez.foo.com'を作成する必要があります。 – sergserg

+0

ワイルドカードでルーティングを試してください –

答えて

7

bind DNSサーバーとMicrosoftのDNSサーバーの両方をセットアップすることができ、ドメイン内の任意の存在しないエントリに一致しwildcard entry:次に

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

あなたのセットアップURLをオンIISでのURLの書き換えルールたとえば、http://subdomain.yourdomain.com/ into http://yourdomain.com/?root=subdomain

これにより、データベースを使用してこれらのクローンサイトを管理できます。

唯一の欠点は、DNS systemが、それは、Apacheに「URLリライト」リンクを行うには、Windowsの世界では可能であるならば、私は知らない設定にフォームwww.*.yourdomain.tld

0

のワイルドカードエントリをあなたが許可されていないということです。

人々には、www.georgestires.foo.comが表示されますが、実際にはwww.foo.com/georgestiresになります。こうすることで、アカウントごとに実際のサブドメインを作成する必要がなくなります。

0

サーバーを指すDNAMEレコードが必要です。ポート80ですべての要求を受け入れ、アプリケーションに送信するようにIISを設定するだけです。着信ドメインが何であるかを調べるためにホストヘッダーを確認するよりも。

SSLの場合、より多くの作業が必要になります。もう一度* .mydomain証明書がうまくいくかもしれません。

+0

私のウェブサイトに自分の店舗を作る潜在的なクライアントごとに 'DNAME'レコードを作成する必要がありますか?それはできないようです。 – sergserg

+0

@Serg、/ [RFC](http://tools.ietf.org/html/rfc2672)のリンクを確認してください - あなたは単なるレベルを与えるワイルドカードCNAMEよりも優れています。 –

関連する問題