在注册时创建子域

时间:2009-07-21 13:03:50

标签: iis-7 subdomain registration

我正在建立一个网站,让企业可以注册自己的帐户,该帐户应位于http://businessname.example.com,每次都会更改“商家名称”。

我想在Windows服务器(IIS 7)上执行此操作,但我不确定如何处理它。

4 个答案:

答案 0 :(得分:5)

通过http://forums.asp.net/t/874598.aspx

  

如果您的DNS提供商(即ISP)具有“通配符”选项,您可以设置* .mydomain.com - > MYIP

     

下一步。   选项1      创建一个脚本,为IIS中的每个子域创建1个站点   选项#2      创建一个url_rewrite脚本,用于重写URL以便即时更正文件夹。

选项2可能就是您所寻找的(强烈建议并优先选择选项1)。

有关在iis7上重写网址的更多信息:http://learn.iis.net/page.aspx/460/using-url-rewrite-module/

  

IIS 7.0的Microsoft URL重写模块提供灵活的基于规则的重写引擎>可用于执行广泛的URL操作任务,包括但不限于:

     
      
  • 使用动态网络应用程序启用用户友好和搜索引擎友好的URL;
  •   
  • 根据HTTP标头和服务器变量重写URL;
  •   
  • 网站内容处理;
  •   
  • 根据网址细分或请求元数据控制对网站内容的访问。
  •   

网址重写选项可以让数十万家公司轻松上手,他们的名字可以从数据库中读取,网址重写可以处理重定向。在此之后,您可以忘记它(大部分),因为它将继续为所有未来注册的公司工作。

答案 1 :(得分:3)

首先,您必须配置DNS服务器以将* .example.com解析为服务器的IP。

然后,您有两个选择:

  • 每次创建新帐户时,都会将其主机添加到IIS的配置中,因此它将绑定到目录。我不确定如何以编程方式执行此操作。
  • 每次向服务器发出请求时,都会检查主机,并将客户端重定向到与主机对应的站点。它可以是显式重定向(客户端到达http://businessname.domain.com/并重定向到http://sites.example.com/businessname/)或隐式(客户端到达http://businessname.example.com/,内部,应用程序位于专用目录businessname并处理请求。

答案 2 :(得分:3)

通常,更好的方法(如果可能)是不为每次注册使用Host Headers或单独的IIS站点。只需为该应用程序提供一个IP地址,以响应端口80(或您使用的任何端口)上的所有请求,并让您的应用程序根据请求检测主机头。这样,如果您有1,000个注册,则最终不需要在操作系统/服务层正确配置1,000个“东西”。

或者,如果您只是想要代码,不确定您正在查看哪种语言,但请参阅下面的C#...

http://forums.iis.net/t/1151463.aspx

答案 3 :(得分:0)

这涉及:

  • 通配符DNS映射
  • 使用IIS API将主机名添加到域,例如businessname.domain.com
  • 编程模拟(因为代码需要更高的使用IIS API而不仅仅是网络服务

一旦以编程方式添加主机名,通配符映射就可以解析它。

URL Rewrite选项更干净,但是对于物理域,您可以提供FTP Access和其他东西,因为它将是一个完整的域。

安德鲁