У меня есть следующий URL:
inspiratie/color-collections/test/test/S%200502-B/test
И правило перезаписи внутри web.config
:
<rule name="color2">
<match url="(kleur-en-inspiratie|inspiratie)/color-collections/([\S ^/]+)/([\S ^/]+)/([\S ^/]+)(/)?([\S ^/]*)" />
<action type="Rewrite" logRewrittenUrl="true" appendQueryString="false" url="{R:1}/color-collections/color-detail?colorcollection={R:2}&colorfamily={R:3}&color={R:4}&colorname={R:6}" />
</rule>
После того, как правило сработает, URL станет таким:
inspiratie/color-collections?colorcollection=test&colorfamily=test&color=S&colorname=
Но ожидаемый результат будет таким:
inspiratie/color-collections?colorcollection=test&colorfamily=test&color=S 0502-B&colorname=test
Как видите, если в коде цвета используется пробел, строка запроса прерывается после параметра цвета ({R:4}
).
Когда я тестирую правило в IIS, оно работает нормально и возвращает ожидаемые результаты.
Я знаю, что неэкранированный пробел не будет работать, но ожидаю, что экранированный пробел сработает.