我需要在一台 IIS 7 服务器上支持多个网站。其中一个网站需要能够支持通配符子域。我希望使用主机标头来实现这种方法,但我认为这是不可能的。需要通配符子域的站点不允许我在主机标头中使用 *.site.com,因此除非我将其设置为盲目监听端口 80,否则它将不会响应子域请求。如果我让该站点盲目监听端口 80,那么我的其他站点似乎将无法工作。
我很可能漏掉了一个步骤。如能得到任何帮助,我将不胜感激!
答案1
为每个单独的网站提供自己的 IP 地址,并将 IIS 配置为基于 IP 地址而不是Host
标头进行监听。
然后,任何具有多个或通配符子域但在单独 IP 上的单个网站都将与 IIS 一起工作以监听该 IP 上的所有传入请求。
答案2
只需使用 site.com 而不是 *.site.com
答案3
我的理解是 IIS 不支持这一点。我假设下一个最佳选择是使用 URL 重写并在全局规则(而不是每个站点)中设置重写。我一直在使用 IIRF,效果很好,而且它是免费的。版本 2.x 现在具有服务器级全局重写规则,然后每个站点都有自己的每个站点重写规则。我会设置一些东西来将 *.domain.com 重定向(甚至重写)到固定子域,例如 www.domain.com。或者甚至可以发挥创意并将其作为文件夹传递,例如 domain.com/subdomain 。
虽然不是最佳解决方案,但应该可行。
我真的很惊讶我们无法让 iis 在主机头上使用常规通配符。这似乎是相当基本的功能。