【发布时间】:2018-09-18 08:29:13
【问题描述】:
我有 2 个 .net API 项目,servce1 和 service2。 我想将它们都放在同一个域(站点)下。我可以确保 API 路由不重叠。 我将项目部署为:
- 默认网站/
- service1(原始网址:http://mydomian/service1/api/ONE)
- service2(原始网址:http://mydomian/service2/api/TWO)
我想要实现的是,我可以使用 http://mydomain/api/ONE 或 http://mydomain/api/TWO 来访问 service1 和 service2 API,而无需 URL 中的子文件夹。
我尝试使用 URL 重写模块,我得到它适用于一个,但我无法让第二个工作,具有相同的设置。请参阅下面的设置文件。
我尝试移动规则订单。没有运气。
<rewrite>
<rules>
<clear />
<rule name="first" stopProcessing="false">
<match url="(.*)ONE(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{REQUEST_URL}" pattern="(.*)/api/ONE(.*)" />
</conditions>
<action type="Rewrite" url="/Servuce1/api/ONE{R:2}" logRewrittenUrl="true" />
</rule>
<rule name="seconds" stopProcessing="false">
<match url="(.*)TWO(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{REQUEST_URI}" pattern="(.*)/api/TWO(.*)" />
</conditions>
<action type="Rewrite" url="/service2/api/TWO{R:2}" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
我的设置有什么问题?
有什么选择?
【问题讨论】:
标签: asp.net iis url-rewriting url-routing url-rewrite-module