通过IIS URL重写模块删除URL的特定部分

时间:2013-09-04 23:13:15

标签: url iis url-rewriting routes rewrite

我只需要删除匹配的任何请求的特定部分。见以下样本:

示例:

旧网址:/ learn / videos,/ learn / events / event-1,/ learn / resources / o365 / lesson1

新网址:/ videos,/ events / event-1,/ resources / o365 / lesson1

我是否需要3个单独的规则,如下所示:

<rule name="old-learn-1">
  <match url="^learn/([_0-9a-z-]+)"/>
  <action type="Rewrite" url="{R:1}"/>
</rule>
<rule name="old-learn-2">
  <match url="^learn/([_0-9a-z-]+)/([_0-9a-z-]+)"/>
  <action type="Rewrite" url="{R:1}/{R:2}"/>
</rule>
<rule name="old-learn-3">
  <match url="^learn/([_0-9a-z-]+)/([_0-9a-z-]+)/([_0-9a-z-]+)"/>
  <action type="Rewrite" url="{R:1}/{R:2}/{R:3}"/>
</rule>

或者可以用1条规则来完成吗?

任何建议或信息都将受到高度赞赏。

1 个答案:

答案 0 :(得分:5)

这样的事情应该有效:

<rule name="old-learn-3">
  <match url="^learn/([/_0-9a-z-]+)"/>
  <action type="Rewrite" url="{R:1}"/>
</rule>

甚至

<rule name="old-learn-3">
  <match url="^learn/(.+)"/>
  <action type="Rewrite" url="{R:1}"/>
</rule>