Я бы хотел увидеть остальные ваши правила перезаписи, чтобы быть уверенным, но если у вас есть несколько переписываний (т.е. для обработки ситуаций, когда пользователи указывают только одну из двух строк запроса), пренебрегая добавлением processing="stop"
в конце приведет к тому, что одно правило переопределит другое.
Например, я использую следующую настройку в моем файле web.config:
<rewriter>
<rewrite url="~/(.+)/(.+)" to="~/Default.aspx?ref=$1&page=$2" processing="stop"/>
<rewrite url="~/(.+)" to="~/Default.aspx?ref=$1" processing="stop"/>
</rewriter>
Сначала будет проверено наличие 2 переменных запроса. Если они есть, он переписывает их соответствующим образом и прекращает обработку других правил . Это важная персона. Без processing="stop"
в конце я передаю оба в виде строки запроса ref
. Это может быть конфликт, с которым вы столкнулись.