0

基本的に別のドメインへの 301 リダイレクトを引き起こす非常に単純な URL 書き換えルールがあります。

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

残念ながら、次のような URL に遭遇した場合:

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

リダイレクト URL は次のようになります。

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

URL エンコーディングが失われることに注意してください。

これは URL 書き換えモジュールのバグですか? もしそうなら、どうすればそれを回避できますか?

4

1 に答える 1

0

私はそれを考え出した。書き換えルールには、部分的なリダイレクト URL のみが指定されています。これを変更したため、クエリ文字列のエンコードが保持されるようになりました。

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

...これに:

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

(末尾のスラッシュに注意してください)

于 2012-07-19T15:38:50.573 に答える