IIS中有多个localhost:80个绑定的站点?

Alp*_*pha 12 iis dns configuration iis-7 localhost

(您可以直接跳到问题,但上下文位于背景部分.)

技术背景

  • Windows 8
  • IIS 7

背景:

和其他几个一样,我使用IIS,有时我需要设置一个本地版本的站点.现在,在设置不同的站点时,为它们分配不同的端口以使它们不重叠是很常见的.因此,您可以将您的站点A设置为端口80,将站点B设置为端口81,依此类推.

现在,我想设置绑定,以便我能够在端口80下拥有多个站点,并且具有标题主机区别,我可以同时为这些站点提供有意义的URL.

执行此操作的选项是向hosts文件添加条目,例如:

127.0.0.1 siteA.com
127.0.0.1 siteB.com
Run Code Online (Sandbox Code Playgroud)

有了这个,您应该能够浏览到siteA.com或siteB.com并在本地工作.

但是我想再多做一步,因为localhost已经设置为匹配127.0.0.1,所以:

题:

我已将IIS绑定设置为:

site    host header       port
siteA   siteA.localhost   80
siteB   siteB.localhost   80
Run Code Online (Sandbox Code Playgroud)

我希望我能够浏览到http://siteA.localhost/http://siteB.localhost/并获取我的网站.

但是,当我浏览时,似乎我的请求永远不会到达IIS,并且地址未解析.

为什么不工作?


更新:

我选择了chue x的答案,因为他解释了为什么这不起作用.对于那些可能遵循相同路径的人,你可能会认为"好吧,我可以添加*.localhost主机文件,它应该完成." 甚至切换到*.local*.localdev.com类似的东西.

但是,这不起作用:Windows主机文件中的通配符

正如chue x指出的那样,我们现在唯一的方法是不断向hosts文件添加条目,或者如何在链接的问题中解释,使用另一个DNS服务器.

chu*_*e x 19

您的hosts文件需要与您的IIS绑定匹配,这些绑定必须与URL浏览器匹配.

因此,如果您的hosts文件如下所示:

127.0.0.1 siteA.localhost
127.0.0.1 siteB.localhost
Run Code Online (Sandbox Code Playgroud)

您的IIS绑定需要是:

site    host header       port
siteA   siteA.localhost   80
siteB   siteB.localhost   80
Run Code Online (Sandbox Code Playgroud)

最后,从本地计算机,您需要浏览到:

http://siteA.localhost
Run Code Online (Sandbox Code Playgroud)

编辑 - 如果您尝试在不添加siteA和siteB的hosts条目的情况下执行上述操作,则无法执行此操作.DNS无法找到它.例如,如果您尝试浏览到"foo.stackoverflow.com"会发生什么 - 即使"stackoverflow.com"是已知地址,请求也会失败.