1

目前我的网址如下所示:
www.mysite.com/venues/<venueid>/<venuename>
例如
www.mysite.com/venues/342/myvenue

通过检查“场地”的出现,很容易为此创建一个重写 url

<rule name="view venue">
<match url="^venues/([0-9]+)?/??([a-zA-Z0-9-]+)?$" />
<action type="Rewrite" url="locationdetails.aspx?id={R:1}" />
</rule>

但是对于一个新站点,我希望我的 URL 看起来像这样:
www.mysite.com/<venuename>-<venueid>
例如
www.mysite.com/myvenue-342

我虽然创建了检查 url 中的数字并将其用作场地 ID 的重写规则,但如果场地场地名称和此友好 URL 包含一个数字,则会导致问题,例如“39 号码头”将变为“码头” -39-342",或者有没有办法捕获友好 url 中的最后一个 id(所以最后一个破折号后的 id)并将其用作 R:1 的参数?

我已经看过这个博客:http ://weblogs.asp.net/owscott/archive/2010/04/20/url-parts-available-to-url-rewrite-rules.aspx这似乎满足了我的需求,但是我不知道如何使用它。

4

1 回答 1

0

这条规则似乎可以满足我的需要:

    <rule name="venue details">
      <match url="^([a-zA-Z0-9-]+)-([0-9-]+)$" />
      <action type="Rewrite" url="locationdetails.aspx?id={R:2}&amp;furl={R:1}" />
    </rule>  
于 2012-10-22T22:08:12.960 回答