如何允许用户在我的MVC网站上创建自己的子域名?

时间:2012-10-21 01:21:29

标签: c# asp.net-mvc-3 iis subdomain

  

可能重复:
  Is it possible to make an ASP.NET MVC route based on a subdomain?

我打算建立一个网站,允许用户创建自己的虚拟商店,由我的网站托管。

想想eBay;让小企业创建他们的商店。

例如:

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

我会让用户在一定程度上创建自己的样式表和自定义,但这是为了以后。现在我想知道如何在MVC 3网站上实现这个功能。

我确实在这里没有任何支撑。任何和所有的建议表示赞赏。我知道在IIS中我可以创建一个“bar.foo.com”子域绑定并直接流向我的ASP.Net MVC3应用程序,但这是否意味着每当有人创建他们的商店时我将不得不以编程方式创建一个新的结合?

这甚至可能吗?我应该看看这种方法吗?

3 个答案:

答案 0 :(得分:7)

bind DNS服务器和Microsoft DNS服务器都允许设置与域中任何不存在的条目匹配的wildcard entry

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

然后在IIS中设置URL重写规则,将http://subdomain.yourdomain.com/表单的网址转换为http://yourdomain.com/?root=subdomain

这将允许您使用数据库管理这些克隆的站点。

唯一的缺点是DNS system不允许您设置www.*.yourdomain.tld

形式的通配符条目

答案 1 :(得分:0)

我不知道在Windows世界中是否有可能在Apache中执行“url rewrite”链接。

所以人们会看到:www.georgestires.foo.com,但它实际上是www.foo.com/georgestires。这样您就不必为每个帐户创建真正的子域。

答案 2 :(得分:0)

您需要DNAME记录指向您的服务器,只需将IIS配置为接受端口80上的所有请求并发送到您的应用。然后检查主机头以查看传入的域是什么。

现在,对于SSL,您需要更多工作。再次* .mydomain证书可能适合您。