IIS 8.5重写:传递动态参数

时间:2016-01-10 12:55:38

标签: asp.net-mvc iis url-rewriting

我正在使用流动的重写地图:

 <rewrite>
      <rewriteMaps>
        <rewriteMap name="OldToNew">
          <add key="/area.aspx?id=1" value="/area/1" />
          <add key="/area.aspx?id=2" value="/area/2" />
          <add key="/area.aspx?id=3" value="/area/3" />
          <add key="/area.aspx?id=4" value="/area/4" />

        </rewriteMap>
      </rewriteMaps>
      <rules>
        <rule name="Rewrite rule1 for OldToNew">
          <match url=".*" />
          <conditions>
            <add input="{OldToNew:{REQUEST_URI}}" pattern="(.+)" />
          </conditions>
          <action type="Redirect" url="{C:1}" appendQueryString="false"  />
        </rule>
      </rules>
    </rewrite>

我想将页面'id'值作为参数传递给键值,而不是写每个area.aspx页面。

我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:1)

当网址之间没有关系时,

rewritemap用于关联2个网址。在您的情况下,您可以使用正则表达式匹配。

以下规则应该有效

<rewrite>
  <rules>
    <rule name="Rule1">
      <match url=".*" />
      <conditions>
        <add input="{REQUEST_URI}" pattern="/area.aspx?id=(.+)" />
      </conditions>
      <action type="Redirect" url="/area/{C:1}" appendQueryString="false"  />
    </rule>
  </rules>
</rewrite>