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

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

  • www.mysite.com (обычный сайт)
  • ws1.mysite.com (веб-службы)

Оба они доступны через 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? Мне просто нужно, чтобы он прошел.
1
задан 28 January 2016 в 00:16
1 ответ

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

EDIT:

На узле web-сайта в менеджере IIS Manager была сконфигурирована команда HTTP Redirect. Была установлена галочка "Redirect requests to this destination" (перенаправлять запросы к этому месту назначения) с "https://www.thisismysite.com" (минус "this is". Спасибо за форматирование...) в качестве адреса. Ниже, под "Поведение перенаправления", "Перенаправлять все запросы на точное место назначения (а не относительно места назначения)". Выбран код статуса "Найдено (302)".

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

.
0
ответ дан 4 December 2019 в 06:41

Теги

Похожие вопросы