Назад | Перейти на главную страницу

Ошибка перенаправления IIS 7 с HTTP на HTTPS с амперсандом в URL

IIS 7 в Windows Server 2008 R2 SP1

Я добавил в свой web.config следующее правило для перенаправления всех входящих запросов на HTTPS.

<rule name="HTTP to HTTPS redirect" stopProcessing="true">
  <match url="(.*)" />
  <conditions>
    <add input="{HTTPS}" pattern="off" ignoreCase="true" />
  </conditions>
  <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>

Это не удается, если в URL-адресе или имени файла присутствуют амперсанды (&). Я просмотрел некоторые из предлагаемых решений и не заинтересован в разрешении использования специальных символов в реестре. Есть ли способ выполнить перезапись для кодирования амперсанда в & или% 26 до правила перенаправления? Правило перенаправления HTTPS использует исходный URL-адрес или новую переписанную / закодированную версию?

Вам необходимо использовать параметр [NE]

<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" [NE] />