在注册时创建子域名

在注册时创建子域名

问题描述:

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

我想在Windows服务器(IIS 7)上做到这一点,但我不知道如何去做。

+1

更适合于serverfault,也许? – Joey 2009-07-21 13:10:48

+1

不太确定...“服务器”(iis配置+脚本)方式比“堆栈”(url重写)方式更麻烦。所以如果选择url重写,它应该留在这里。 – b0x0rz 2009-07-21 13:19:18

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

然后,你有两种选择:

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

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

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

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

选项2可能是您正在查找的内容(强烈建议并偏好选项1)。关于URL重写IIS7上

更多信息:http://learn.iis.net/page.aspx/460/using-url-rewrite-module/

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

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

URL重写选项,可以很容易地有成千上万的公司,他们的名字可以从数据库和URL重写将处理重定向读取。之后你可以忘记它(大部分),因为它将继续为所有在未来注册的公司工作。

这涉及:

  • 通配符DNS映射
  • 使用IIS API为主机名例如添加到域businessname.domain.com
  • 程序上的模拟(如代码需要更高的priveledge使用IIS API不仅仅是NETWORK SERVICE

一旦编程添加主机名通配符映射使其能够解决。

URL重写的办法是清洁的,但与物理域,你可以提供FTP连接和其他的东西,因为它是一个完整的域名。

安德鲁

g ^一般来说,更好的方法(如果可能的话)是不使用主机头或每个注册单独的IIS站点。只需将IP地址专用于该应用程序,以响应端口80上的所有请求(或您使用的任何端口),并让应用程序根据请求检测主机头。这样,如果您有1,000个注册,您最终不会得到需要在OS /服务层正确配置的1,000个“事物”。

或者,如果你只是想要的代码,不知道你看什么语言,但看到下面的C#...

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