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] />