IIS 替换部分 url

far*_*ldt 2 c# asp.net-mvc iis-7.5

我正在尝试使用 iis 中的 url 重写将 url 中的“se”替换为“sv”。

网址如下所示:www.somedomain.com/se/baadmarked/baade

应如下所示: www.somedomain.com/sv/baadmarked/baade

我当前的规则如下:

<rule name="se to sv" patternSyntax="ECMAScript" stopProcessing="true">
    <match url="(.*)" />
    <action type="Redirect" url="{C:1}sv{C:3}" appendQueryString="false" />
    <conditions logicalGrouping="MatchAny">
        <add input="{HTTP_HOST}{QUERY_STRING}" pattern="(.*)(se)(.*)" />
    </conditions>
</rule>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多,但没有什么能完成工作。

Ash*_*way 5

听起来您想使用重写功能而不是重定向功能。

该规则应如下所示:

<rule name="se to sv">
    <match url="^(.*)/se/(.*)" />
    <action type="Rewrite" url="{R:1}/sv/{R:2}" />
</rule>
Run Code Online (Sandbox Code Playgroud)

这场比赛将规则打破为两部分。第一部分是域,第二部分是se.

该操作表示将所有这些地址重写为{R:1}域部分,/sv/然后{R:2}se.

如果您确实想要重定向,只需将操作从 更改RewriteRedirect。还不是很清楚。

如果需要,您仍然可以添加stopProcessing="true"appendQueryString="false"