Правило перезаписи IIS для пути к подпапке - PullRequest
0 голосов
/ 21 октября 2019

Я размещаю несколько веб-сайтов на разных серверах и использую IIS 10 + перезапись URL-адреса на внешнем сервере только в качестве обратного прокси-сервера.

перенаправление выглядит следующим образом:

  • www.example.com перезапись на сервер A:
  • siteB.example.com перезапись на сервер B:
  • siteC.example.com перезапись на сервер C:

Эта схема позволяет мне иметь только один сертификат для управления всеми моими сайтами субдоменов

Это нормально работает на субдоменах с условиями, соответствующими правилам.

Теперь я хочу переписатьправило из подкаталога для сопоставления всего сайта D с этим подкаталогом.

пример:

  • www.example.com / siteD переписать на сервер D:

сайт перенаправляет первую страницу, но внешний вид выглядит странно, а ссылки не работают.

- это правильный способ справиться с этим с условиями {C: 2} или шаблон должен применяться к совпадениюurl?

вот мой web.config:

<rule name="www.example.com_site_d" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                        <add input="{HTTP_HOST}" pattern="^www.example.com$" />
                        <add input="{REQUEST_URI}" pattern="^(/siteD/)(.*)$" />
                    </conditions>
<action type="Rewrite" url="http://myinternalsited:80/{C:2}" logRewrittenUrl="true" />

Спасибо

1 Ответ

0 голосов
/ 22 октября 2019

Насколько я знаю, REQUEST_URI означает полный путь URL с запросной строкой.

Если REQUEST_URI равен /siteD/test?q=IIS+url+rewrite, результат C: 2 будет: test?q=IIS+url+rewrite.

Результат:

enter image description here

Если REQUEST_URI равен /siteD?q=IIS+url+rewrite, условие не будет соответствовать.

...