IIS 将 olddomain.com/en-us/ABC 重定向到 newdomain.com/ABC

IIS Redirect olddomain.com/en-us/ABC to newdomain.com/ABC

我想在 web.config 中设置从 olddomain.com/en-us/abc/blahblahnewdomain.com/abc/blahblah 的重定向 意味着除了域的变化,新的 URL 没有 /en-us/,其他一切都保持不变。 我从这里那里那里捡起并提出了以下代码,但它不起作用。你能帮忙吗?

<rule name="Redirect New Site" enabled="true" stopProcessing="true">
<match url="^/en-us/(.*)$" />
  <conditions logicalGrouping="MatchAll">
  <add input="{PATH_INFO}" pattern="^/abc/(.*)" />
  <add input="{HTTP_HOST}" pattern="^olddomain.com/$" />
  </conditions>
  <action type="Redirect" url="https://newdomain.com/{R:1}" redirectType="Permanent" />
</rule>

对于这个需求,我在自己这边测试了一下。您可以像下面这样使用 <rule>

<rule name="redirectRule1" enabled="true" stopProcessing="true">
    <match url="^en-us/(.*)" />
    <conditions logicalGrouping="MatchAll">
      <add input="{HTTP_HOST}" pattern="^olddomain$" />
    </conditions>
    <action type="Redirect" url="http://newdomain.com/{R:1}" />
</rule>

这是我这边的规则和测试结果。我的 web.config 中的 <rule> 是:

<rule name="redirectRule1" enabled="true" stopProcessing="true">
    <match url="^en-us/(.*)$" />
    <conditions logicalGrouping="MatchAll">
      <add input="{HTTP_HOST}" pattern="^localhost:49293$" />
    </conditions>
    <action type="Redirect" url="http://newdomain.com/{R:1}" />
</rule>

请注意我的旧域名是localhost:49293

然后当我请求 url http://localhost:49293/en-us/Upload 时,它将重定向到新的 url http://newdomain.com/Upload(没有 en-us)。

============================更新====== ======================

<rule name="redirectRule1" enabled="true" stopProcessing="true">
    <match url="^en-us/abc/(.*)" />
    <conditions logicalGrouping="MatchAll">
      <add input="{HTTP_HOST}" pattern="^olddomain$" />
    </conditions>
    <action type="Redirect" url="http://newdomain.com/abc/{R:1}" />
</rule>