IIS url重写规则以隐藏子文件夹

时间:2018-04-09 01:42:31

标签: asp.net iis url-rewriting url-routing url-rewrite-module

我有2个.net API项目,servce1和service2。 我想把它们放在同一个域(站点)下。我可以确保API路由不重叠。 我将项目部署为:

我想要实现的是,我可以使用http://mydomain/api/ONEhttp://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>

我的设置有什么问题?

有哪些替代方案?

1 个答案:

答案 0 :(得分:0)

是否应将stopProcessing设置为“true”,以便在第一个规则匹配时不应用第二个规则?