首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将IIS7(折扣asp.net)配置为将子域指向应用程序子目录?

如何将IIS7(折扣asp.net)配置为将子域指向应用程序子目录?
EN

Server Fault用户
提问于 2010-03-24 14:17:28
回答 2查看 3.1K关注 0票数 3

我有一个折扣asp.net帐户,它使用IIS 7,我想配置子域以指向站点上的特定应用程序。

例如:

“s1.site.com”将在'site.com/serverone‘上运行该应用程序。我希望子域是不透明的,这样用户就不必处理/serverone部分了。

服务器故障也有类似的问题,但它涉及为每个子域创建一个全新的站点,就像我希望的那样,在每个子域的子目录中路由到独立的应用程序。

另外,折扣asp.net提供了基于脚本的编程解决方案,但这显然是一种不那么理想和灵活的解决方案,可能会导致性能下降(尽管我还没有实际测量这两种方法之间的差异)。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2010-03-25 08:21:57

使用萨姆·科根提到的URL重写,它自动安装在任何折扣asp.net帐户中(并且可以安装到任何IIS7服务器上),我创建了一个重写规则来解决我的问题。

注意:折扣asp.net的工作人员说,除了编程脚本之外,重写规则是在他们的一个帐户上完成这一任务的唯一方法。折扣asp.net提供了一个编程脚本(我说是hack),它可以将子域路由到子目录,但是我需要比这样的解决方案更灵活和更好的性能。

如果IIS 7重写模块未安装,则必须找到该模块(可能在microsoft的IIS网站上),然后安装它。

在IIS中安装重写模块后,使用IIS管理器连接到它。

在创建规则(而不是应用程序所在的子目录)时,一定要选择网站的根级,这是非常重要的,因为它导致了一个浪费时间的严重错误。重写规则可以在目录层次结构中的不同级别应用,根据规则在目录层次结构中的位置而产生不同的效果(我相信它在创建规则时对本地web.config进行了更改,但我没有花时间确认这一点)。这也意味着当您更改另一个目录中的规则时,您无法看到在其他目录中设置的规则。

选择重写的根目录很重要,因为您希望将所有子域url重新路由到子目录url(除了已经路由到子目录的子目录)。

选择根目录后,双击URL重写,输入重写区域。然后单击“添加规则”(S)并创建“空白规则”。

为了匹配

模式使用:^(?!serverone/)(.*)和set

请求URL:以“匹配模式”,以及

用于正则表达式。

这将通过这个规则路由任何url,忽略那些已经被引导到正确的子域,但是我们希望限制那些在url中没有子域的路由内容的重写,所以接下来我们将添加一个条件。

它只需要一个条件,使用{HTTP_HOST}作为输入,其模式是: s1.site.com

最后,对于Action,您需要一个“Action”的'Rewrite‘,它附加了查询字符串值。

重写url应该是:serverone/{R:0}

票数 2
EN

Server Fault用户

发布于 2010-03-24 14:22:59

我不知道优惠aps.net的控制面板是如何工作的,但是如果您在IIS中直接这样做,您需要为每个应用程序创建一个单独的站点,而不一定是每个子域,如果每个应用程序有多个子域,那么为每个子域URL设置绑定。然后,每个站点的根将是您的应用程序文件夹。不能只使用主站点的子文件夹,因为不能将绑定添加到文件夹中。

或者,您可以使用URL重写将site.com/serverone的请求重写为s1.site.com

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/125785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档