IIS URL重写模块取消编码查询字符串

时间:2012-07-19 04:02:38

标签: iis-7.5 url-rewrite-module

我们有一个非常简单的URL重写规则,它基本上会导致301重定向到另一个域:

<rewrite>
  <rule>
    <match url="^(default.aspx)?$" />
    <action type="Redirect" url="https://some.other.domain.com" />
  </rule>
</rewrite>

不幸的是,当遇到这样的网址时:

http://original.domain.com/?returnUrl=https%3A%2F%2Fsome.url%2F

重定向网址如下所示:

https://some.other.domain.com/?returnUrl=https://some.url/

注意URL编码是如何丢失的。

这是URL重写模块中的错误吗?如果是这样,一个人如何解决它?

1 个答案:

答案 0 :(得分:0)

我明白了。重写规则仅指定了部分重定向URL。现在我保留了查询字符串编码,我改变了这个:

<action type="Redirect" url="https://some.other.domain.com"/>

......对此:

<action type="Redirect" url="https://some.other.domain.com/"/>

(注意斜杠)