我是新来的IISpipe理,但我需要build立一个网站,其网站根有多个目录也是网站。
例如,假设我在http://www.example.com上有网站
该网站的根目录有多个文件夹的内容,但也有其他两个目录,比如/ community和/ labs。
我想让这些目录成为独立站点的文档根目录,这样如果您访问http://www.example.com/community或http://www.example ,就可以访问完全不同的asp.net站点。 com /如果你去http://www.example.com主网站。
真的,这将是一个目录中的3个网站。
我可以看到你可以使用不同的端口创build单独的网站,但我希望他们都在80端口。
这些子目录网站是虚拟网站吗? 我知道这是可以做到的,因为我们的系统pipe理员已经为我们的企业网站设置了这个function,我已经多次发布了这个function,但是我自己也想这样做,而且我无法从IT部门获得答案他们是如何做到的 :^)
谢谢,斯科特
这在IIS 7.5中很简单
由于一个“网站”,简而言之,就是至less有一个端点映射(一个绑定 )和一个或多个应用程序的占位符。
创build一个网站(或修改默认网站的设置)。 当您在IISpipe理器中展开网站时,您将看到一个子目录树,即网站根应用程序指向的物理目录中的子目录。
右键单击要在其中托pipe其他应用程序的子目录(例如“社区”),然后select“ 转换为应用程序” 。 现在,您将能够configuration替代的应用程序池来提供内容,并且可以单独configuration应用程序,而不依赖于(几乎)任何根应用程序的function设置。
有关更深入的解释,请访问Mike Volodarsky的博客 ,他devise了IIS 7应用程序体系结构,所以如果有人知道什么是:-)
在IIS7中,每个站点都有一个默认的应用程序,但是您可以很容易地添加子应用程序 。 只需右键单击该站点,然后单击“添加应用程序”。 在这里,您可以指定别名(/ community),应用程序池(可能需要预先创build一个新的),以及服务器上物理文件的path。
另一种不接触现有网站的方式(如M $产品自动创build和pipe理的)是一个反向代理,必要时可以使用URL重写和/或响应修补:
反向代理与URL重写v2和应用程序请求路由
这里相当冗长的指令归结为:
/configuration/system.webServer下的根web.config (显示了如何使用InetMgr的UI添加它们): <rewrite> <!--route requests--> <rules> <rule name="Reverse Proxy to webmail" stopProcessing="true"> <match url="^webmail/(.*)" /> <action type="Rewrite" url="http://localhost:8081/{R:1}" /> </rule> <rule name="Reverse Proxy to payroll" stopProcessing="true"> <match url="^payroll/(.*)" /> <action type="Rewrite" url="http://localhost:8082/{R:1}" /> </rule> </rules> <!--patch response HTML--> <outboundRules> <rule name="Add application prefix" preCondition="IsHTML"> <match filterByTags="A" pattern="^/(.*)" /> <conditions> <add input="{URL}" pattern="^/(webmail|payroll)/.*" /> </conditions> <action type="Rewrite" value="/{C:1}/{R:1}" /> </rule> <preConditions> <preCondition name="IsHTML"> <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" /> </preCondition> </preConditions> </outboundRules> </rewrite>