2015-06-02 2 views
0

У меня есть правило в моем 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> 

Как я могу использовать оба правила или одно правило, которое бы разрешило обе?

ответ

0

Я понял. Я должен был добавить условие к первому правилу, чтобы ничего не делать для другого правила. Таким образом, это выглядит так:

<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> 
Смежные вопросы