【发布时间】:2018-05-07 09:09:08
【问题描述】:
我有以下网址:
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 中测试规则时,它工作正常并返回预期结果。
我知道未转义的空白将不起作用,但希望转义的空白起作用。
【问题讨论】:
标签: c# web-config url-rewrite-module