Asp.net Web.config中类似重写规则的问题

Asp.net Web.config中类似重写规则的问题,asp.net,mod-rewrite,url-rewriting,web-config,Asp.net,Mod Rewrite,Url Rewriting,Web Config,我的web.config中有一条规则可以使用 <rule name="Guestbook Rewrite" stopProcessing="true"> <match url="(.*?)-guestbook" /> <action type="Rewrite" url="guestbook.asp?gb={R:1}" /> </rule> 当有人转到MyDomain.com/view-guestbook或MyDomain.com/sign-

我的web.config中有一条规则可以使用

<rule name="Guestbook Rewrite" stopProcessing="true">
<match url="(.*?)-guestbook" />
<action type="Rewrite" url="guestbook.asp?gb={R:1}" />
</rule>

当有人转到MyDomain.com/view-guestbook或MyDomain.com/sign-guestbook时,他们会转到相应的页面

我遇到的困难是,我有几页留言簿条目,因此我希望能够添加一个规则,以便当有人转到“view-guestbook-page-9”时,他们实际上得到的是MyDomain.com/guestbook.asp?gb=view&pagenum=9。我添加了以下规则,但一添加,就出现了500个错误。我猜它要么与前面的规则冲突,要么语法不正确

<rule name="Guestbook View Page Rewrite" stopProcessing="true">
<match url="view-guestbook-page-(.*)" />
<action type="Rewrite" url="guestbook.asp?gb=view&pagenum={R:1}" />
</rule>


我怎么能同时拥有这两条规则,或者只有一条规则可以同时解决这两个问题

我弄明白了。我必须在第一条规则中添加一个条件,不为另一条规则做任何事情。 看起来是这样的:

<rule name="Guestbook Rewrite" stopProcessing="true">
<match url="(.*?)-guestbook" />
    <conditions>
        <add input="{REQUEST_URI}" pattern="view-guestbook-page-" negate="true" />
    </conditions>
<action type="Rewrite" url="guestbook.asp?gb={R:1}" />
</rule>

<rule name="View Guestbook Page Rewrite" stopProcessing="true">
<match url="view-guestbook-page-(.*)" /> 
<action type="Rewrite" url="guestbook.asp?PageNum={R:1}" />
</rule>