Сценарий: веб-сервер, на котором запущен один сайт под двумя разными адресами:
Оба они доступны через HTTPS, и оба работают в одном приложении (будь то вызов веб-службы или обычный вызов www обрабатывается программно).
У меня есть веб-страница на этом сайте www, которая вызывает веб-службу на сайте ws1 через Javascript. Технически это вызов CORS. Однако для обратной совместимости я хочу сделать вызовы не CORS. Наилучший способ сделать это - создать правило перезаписи URL-адреса для разветвления настраиваемого адреса (скажем, www.mysite.com/ws1/) на место веб-служб (ws1.mysite.com), чтобы браузеры не знали об этом. это CORS (потому что, в конце концов, это на самом деле это не "Cross-Origin").
Итак, я установил следующие правила на сайте:
<rewrite>
<rules>
<remove name="WS1-Inbound" />
<rule name="WS1-Inbound" enabled="false">
<match url="^ws1/(.*)" />
<conditions />
<serverVariables />
<action type="Rewrite" url="https://ws1-mysite.com/{R:1}" logRewrittenUrl="true" />
</rule>
</rules>
<outboundRules>
<remove name="WS1-Outbound" />
<rule name="WS1-Outbound" enabled="false">
<match filterByTags="None" pattern="^https://ws1-mysite.com/(.*)" />
<conditions />
<action type="Rewrite" value="ws1/{R:1}" />
</rule>
</outboundRules>
</rewrite>
Это возвращает 404.4. Итак, я включаю ARR, и теперь я получаю 502,3.
Правило для входящего применяется успешно, оно никогда не попадает в правило для исходящего.
Нужно ли мне:
В данном случае помешала инструкция HTTP Redirect, сконфигурированная в IIS.
EDIT:
На узле web-сайта в менеджере IIS Manager была сконфигурирована команда HTTP Redirect. Была установлена галочка "Redirect requests to this destination" (перенаправлять запросы к этому месту назначения) с "https://www.thisismysite.com" (минус "this is". Спасибо за форматирование...) в качестве адреса. Ниже, под "Поведение перенаправления", "Перенаправлять все запросы на точное место назначения (а не относительно места назначения)". Выбран код статуса "Найдено (302)".
Я снял флажок "Перенаправлять запросы к этому месту назначения". Я все еще пытаюсь выяснить, как это на самом деле все исправило.
.