Переписывание URL IIS не работает

4569
Doron Zavelevsky

У меня есть настройки IIS с правилами перенаправления, которые прекрасно работают на моей машине с Windows. Однако - я начинаю использовать Mac - поэтому я установил виртуальную машину VirtualBox с окнами на ней и использовал точно такую ​​же настройку. Теперь виртуальная машина Windows, которую я запустил на VirtualBox для Mac, такая же, как и физическая машина Windows, которую я использовал до сих пор.

Проблема в том, что перенаправление URL не работает. С гостевой машины (windows) я просматриваю URL, который должен быть перенаправлен, и это не происходит должным образом. Я предполагаю, что это как-то связано с настройкой сети для виртуальной машины - нужно ли создавать правила переадресации портов? Какие?

Вот правило - из web.config (он отлично работает на физической машине):

<rule name="API" patternSyntax="ECMAScript" stopProcessing="true"> <match url="api/.*" /> <action type="Rewrite" url="https://api.MyDomain.com/" /> </rule> 

Что касается ВМ - я определил два сетевых адаптера:

  • 1: NAT

  • 2: Адаптер только для хоста

Обратите внимание, что у меня есть доступ к Интернету с гостевой машины, я также могу получить доступ к своему веб-сервису локально - все в порядке, за исключением перезаписи URL, когда применяется правило.

2

1 ответ на вопрос

3
qbik

Out of the box, UrlRewrite can only do rewrites to the same page, like this:

<rule name="Rewrite to article.aspx"> <match url="^article/([0-9]+)/([_0-9a-z-]+)" /> <action type="Rewrite" url="article.aspx?id=&amp;title=" /> </rule> 

It seems you are trying to do a rewrite to entirely another site on another domain and possibly do ssl offloading - this is what Reverse Proxy does. For this to work, you have to have Application Request Routing installed.

What I would do to debug this config is:

  1. Replace rewrite action with a redirect and see if it works - this way you make sure that the rule gets applied for your request.
  2. If all you're trying to do is a rewrite within your site, change the rewrite url to a relative one.
  3. If you indeed need to do a rewrite to a different site, install and configure ARR (which itself can bring another set of problems)
Я принимаю ваш ответ - и я собирался ответить на свой вопрос. Оказывается, я пропустил один шаг настройки при переходе со своей старой машины на виртуальную машину - для установки и настройки ARR (проверьте включение прокси). Спасибо! Doron Zavelevsky 9 лет назад 0

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