Asp.net URL重写器未获取精确匹配

Asp.net URL重写器未获取精确匹配,asp.net,regex,url-rewriting,Asp.net,Regex,Url Rewriting,我正在使用UrlRewriter实现一些url重写 那么去 将转到~/Items/Details.aspx?Itemid=11 <rewriter> <rewrite url="~/1" to="~/Items/Details.aspx?ItemId=1" /> <rewrite url="~/2" to="~/Items/Details.aspx?ItemId=2" /> <rewrite url="~/3" to="~/I

我正在使用UrlRewriter实现一些url重写

那么去

将转到~/Items/Details.aspx?Itemid=11

  <rewriter>
    <rewrite url="~/1" to="~/Items/Details.aspx?ItemId=1" />
    <rewrite url="~/2" to="~/Items/Details.aspx?ItemId=2" />
    <rewrite url="~/3" to="~/Items/Details.aspx?ItemId=3" />
    <rewrite url="~/11" to="~/Items/Details.aspx?ItemId=11" />
  </rewriter>

这里的问题是11总是重定向到1。与400重定向到4相同。我猜这不是一个精确的匹配,只是某种“包含”

我如何让它精确匹配

我用它来为regex编写代码,不是为了硬编码所有的东西,但这一切都不起作用

<rewriter>
    <rewrite url="~/(\d)" to="~/Items/Details.aspx?ItemId=$1" />
</rewriter>

谢谢大家


<rewrite url="~/(\d+)" to="~/Items/Details.aspx?ItemId=$1" />
-------------------^
-------------------^

-------------------^

您应该指定URL的结尾,并为
\d
表达式使用量词,以允许多个数字:

<rewriter>
    <rewrite url="~/(\d+)$" to="~/Items/Details.aspx?ItemId=$1" />
</rewriter>

您应该指定URL的结尾,并为
\d
表达式使用量词,以允许多个数字:

<rewriter>
    <rewrite url="~/(\d+)$" to="~/Items/Details.aspx?ItemId=$1" />
</rewriter>