IIS URL重写模块忽略路径中的子应用的规则
问题描述:
我试图在我的网站上包含路径中的子应用的某个路径上进行URL重写。问题是,当我在路径中有我的子应用程序的名称时,规则会被跳过。IIS URL重写模块忽略路径中的子应用的规则
所以我当前IIS设置:
Root App (example.com)
|
|---Child App (mychild)
比方说,该网站是http://example.com
我可以通过http://example.com/mychild/...
现在我需要做一个URL重写规则访问子应用它会捕获子应用程序下的特定网址。因此,例如这将需要匹配:
http://example.com/mychild/folder1/method1
和改写为别的
当我把这个规则(根站点web.config
),但是(为简单起见移除正则表达式),规则是不触发,继续路由到孩子的应用程序,并导致404:
<rule name="rule1" enabled="true" patternSyntax="ExactMatch" stopProcessing="true">
<match url="mychild/folder1/method1" />
<action type="Rewrite" url="http://otherlocalserver"
</rule>
如果我更改了url
属性别的东西mychild
实例(这是不是一个孩子应用程序),如:
<match url="hello/folder1/method1" />
此:http://example.com/hello/folder1/method1
将比赛。
我怎样才能得到这个规则之前 IIS认为我希望它使用child
应用程序?
答
子应用程序是否作为单独的网站运行?
然后,您应该在正确的web.config文件中执行重写路径。
如果不是,那么可能还有其他一些规则将目标设定为stopProcessing =“true”标记(如您在此处发布的规则中的标记)。