Правило обратного прокси iis не с тем же виртуальным каталогом - PullRequest
0 голосов
/ 10 января 2020

У меня есть два URL,

первый выглядит так: localhost1 / api / test / 2.0 / aaa

второй выглядит так: localhost2 / api / test / 3.0 / aaa

при использовании localhost1 / api / test / 3.0 / aaa, я хочу переписать в localhost2 / api / test / 3.0 / aaa. Моя карта перезаписи: исходное значение localhost1, а новое значение localhost2

Мое входящее правило - api /(.+)/ 3.0 /(.+), URL-адрес соответствует https: // {C: 0 } / api / {R: 1} /3.0/ {R: 2}

Когда я использую localhost1 / api / test / 3.0 / aaa, я всегда получаю ответ от localhost1 / api / test / 2.0 / aaa, но я действительно хочу это localhost2 / api / test / 3.0 / aaa Пожалуйста, скажите мне, как это исправить.

(ps: если вы используете localhost1 / api / test2 / 3.0 / aaa, я могу получить правильный ответ от localhost2 / api / test2 / 3.0 / aaa., но существует locahost1 / api / test)

Спасибо.

1 Ответ

0 голосов
/ 13 января 2020

Насколько я знаю, C: 0 будет соответствовать шаблону условия, а не входящему шаблону. Кроме того, я обнаружил, что вы просто пишете правило, соответствующее localhost1/api/test/3.0/aaa, а не api/test/2.0/aaa.

. Если вы хотите, чтобы 2.0 также переписывал на localhost2, я предлагаю добавить ниже правило перезаписи URL.

            <rule name="Teeee">
                <match url="api/(.+)/2.0/(.+)" />
                <action type="Rewrite" url="https://localhost2/api/{R:1}/2.0/{R:2}" />
            </rule>
...