这是否可以配置IIS7以实现像Apache一样的关于通配符域的功能?我对基于URL中使用的子域用户在ASP.NET Web应用程序中路由用户感兴趣.
这里描述的东西如下:
http://steinsoft.net/index.php?site=programming/articles/apachewildcarddomain
谢谢
答案是否,IIS7(仍然)不支持通配符主机名(请参阅此内容).如果你想在一个网站上提供多个域名,那么现在唯一的解决方法就是使用专用的IP并使用支持通配符的DNS来实现.
为了完整起见,IIS8还没有此功能.
最后,Windows 2016中的IIS 10支持通配符子域.
IIS是否支持通配符主机标头?我可以捕获*.mydomain.com并将其重定向到一个网站吗?
答案是肯定/否定.是的,因为您可以将*.mydomain.com重定向到一个网站.不,因为神奇是在DNS而不是IIS.
以下是您的操作方法:
在IIS MMC中,配置一个没有主机头的网站,然后为该站点分配IP地址.(如果框中有一个IP地址,则可以跳过此处).有了这个,网站将绑定到特定的IP,并将监听发送到IP的所有HTTP请求,你就完成了:)
下一步是确保您的名称解析适用于通配符查询并使用正确的IP地址进行回复.如果您使用Microsoft DNS服务,它将不允许您创建'*'A记录(假设您已在DNS MMC中创建了域区域),您需要执行以下操作:
导航 %windir%\system32\dns\
找到区域文件.例如
mydomain.com.dns,用记事本打开它
添加条目.例如
* A IP.IP.IP.IP
保存区域数据文件
在DNS MMC中重新加载区域数据.
请注意,通过执行此操作,所有*将响应您之前配置的IP.例如abc.mydomain.com,www.mydomain.com,K2k.mydomain.com等.
要验证它是否正常工作,请尝试ping实用程序ping (insert anything here).mydomain.com
,您应该收到来自IP.IP.IP.IP的回复
然后尝试浏览,http://(在此处插入任何内容).mydomain.com /,您应该获得已配置的相同网页.
资源
您无法在Microsoft的DNS中创建通配符(*)A记录,但您可以创建通配符CNAME
.如果您要做的只是将所有子域指向特定的IP,这将起作用.例如,如果您有A记录www.mydomain.com
,则可以CNAME
为其添加记录*.mydomain.com
并指向该记录www.mydomain.com
.请求标头中的主机名仍然是子域,因此您的Web应用程序应该能够捕获它并在需要时处理它.