友好网址中的&符号无法使用重写模块

时间:2012-07-03 16:28:01

标签: iis-7.5 windows-server-2008-r2 url-rewrite-module

我可以说:?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%26b1/a&b之类的内容只适用于?a=1&b=a似乎一切都是截止的之后%26或&在运行时。但是,在服务器管理器中,我可以测试重写,并且在GUI中的测试工具中没有任何内容被截断。

不知道如何处理这件事,我所做的一切似乎都非常简单。所以要清楚的是,我怎么能有一个友好的URL,其中有一个&符号(如果必须的话,还是%26)并且URL Rewrite 2.0模块会传递完整的参数?

1 个答案:

答案 0 :(得分:1)

花了一段时间,但我找到了答案。 URL在传递之前被解码,因此创建了一个额外的变量。

无论如何,解决方案实际上非常简单。事实证明我需要做的就是将Rewrite URL规则调整为:

Default.aspx?a={UrlEncode{R:1}}&b={R:2}

UrlEncode函数将正确编码{R:1}。