Проблема с похожими правилами IIS 7 Rewrite - PullRequest
0 голосов
/ 20 июля 2010

У меня есть 2 похожих правила переписывания, которые убивают друг друга.

Вот мои правила:

<rule name="Product rewrite">
<match url="^product/([_0-9a-z-]+)/([0-9]+)" />
<action type="Rewrite" url="product.asp?id={R:2}" />
</rule>

<rule name="Article rewrite">
<match url="^([_0-9a-z-]+)/([0-9]+)" />
<action type="Rewrite" url="article.asp?id={R:2}" />
</rule>

Теперь проблема в том, что когда я вызываю страницу следующим образом:

/ product / 56-little-stars / 14

тогда вызывается страница article.asp, а не product.asp, но когда я задаю URL следующим образом:

/product/56-little-stars/14

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

/this-is-title-of-my-article/11 <-> article.asp?id=11

И назвать продукт таким образом:

/product/56-little-stars/14 <-> product.asp?id=14

Спасибо!

1 Ответ

0 голосов
/ 20 июля 2010

Если я правильно понимаю, вам просто нужно добавить stopProcessing = "true", чтобы после применения правила продукта (которое является более конкретным) оно не применялось ко второму.

<rule name="Product rewrite" stopProcessing="true">  
...