我可以说:?a=1&b=r%26d
到aspx页面就好了。第二个参数中的&
编码为%26
,因为&
被保留为分隔符。
我在2008 R2上为IIS7.5下载并安装了 URL Rewrite Module 2.0 。
我写了一条简单的规则:^([^/]+)/([^/]+)/?$
来匹配并重写网址:Default.aspx?a={R:1}&b={R:2}
。
因此,1/a b
之类的内容可以很好地适用于?a=1&b=a b
,但1/a%26b
或1/a&b
之类的内容只适用于?a=1&b=a
似乎一切都是截止的之后%26或&在运行时。但是,在服务器管理器中,我可以测试重写,并且在GUI中的测试工具中没有任何内容被截断。
不知道如何处理这件事,我所做的一切似乎都非常简单。所以要清楚的是,我怎么能有一个友好的URL,其中有一个&符号(如果必须的话,还是%26)并且URL Rewrite 2.0模块会传递完整的参数?
答案 0 :(得分:1)
花了一段时间,但我找到了答案。 URL在传递之前被解码,因此创建了一个额外的变量。
无论如何,解决方案实际上非常简单。事实证明我需要做的就是将Rewrite URL规则调整为:
Default.aspx?a={UrlEncode{R:1}}&b={R:2}
UrlEncode函数将正确编码{R:1}。