0

我可以说: ?a=1&b=r%26d到aspx页面就好了。第二个参数中的&in 被编码为%26因为&被保留为分隔符。

我在 2008 R2 上下载并安装了IIS7.5 的URL 重写模块 2.0

我写了一个简单的规则:^([^/]+)/([^/]+)/?$匹配和重写 url: Default.aspx?a={R:1}&b={R:2}

因此,像 %26 或 & 在运行时这样的事情似乎1/a b可以正常工作?a=1&b=a b,但类似1/a%26b1/a&b只能解决的?a=1&b=a事情似乎一切都被切断了。但是,在服务器管理器中,我可以测试重写,并且在他们的 GUI 中的测试工具中没有任何内容被切断。

不知道该怎么做,我所做的一切似乎都很简单。所以要清楚,我怎样才能有一个友好的 URL,其中有一个&符号(或 %26,如果我必须),并让 URL Rewrite 2.0 模块传递完整参数?

4

1 回答 1

1

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

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

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

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

于 2012-07-03T18:00:38.643 回答