IIS URL Пренаписване на низ на заявка за декодиране на модул

Имаме наистина просто правило за пренаписване на URL адреси, което основно причинява пренасочване 301 към друг домейн:

<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 адреси? Ако е така, как може да се заобиколи?


person Jacob    schedule 19.07.2012    source източник


Отговори (1)


Разбрах го. Правилото за пренаписване има указан само частичен URL адрес за пренасочване. Кодирането на низа на заявката вече е запазено, след като промених това:

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

...до това:

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

(обърнете внимание на наклонената черта в края)

person Jacob    schedule 19.07.2012