Web.config 中类似重写规则的问题
Issue with Similar Rewrite Rules in 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-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>
我的 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>