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

Использование URL Rewrite и ARR для перенаправления на тот же сервер

Сценарий: веб-сервер, на котором запущен один сайт с двумя разными адресами:

Оба доступны через 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.

Правило для входящего трафика применяется успешно, оно никогда не попадает в правило для исходящего трафика.

Я:

  1. Нужно вообще включить ARR в этой ситуации?
  2. Нужно каким-то особенным образом обрабатывать SSL? Мне просто нужно пройти.

В этом случае мешала инструкция HTTP Redirect, настроенная в IIS.

РЕДАКТИРОВАТЬ:

На узле веб-сайта в диспетчере IIS у меня было настроено перенаправление HTTP. Флажок «Перенаправить запросы на этот пункт назначения» был установлен, с «https://www.thisismysite.com"(минус" это ". Спасибо за форматирование ...) в качестве адреса. Ниже, в разделе" Поведение перенаправления "," Перенаправлять все запросы на точное место назначения (а не относительно пункта назначения). "Выбранный код состояния был" Найдено (302 ) ".

Я снял флажок «Перенаправить запросы на это место назначения». Я все еще пытаюсь понять, как это исправить.