A reescrita de URL do IIS não funciona

2

Eu tenho uma configuração do IIS com regras de redirecionamento que funcionam perfeitamente na minha máquina Windows. No entanto - eu estou começando a usar o Mac - então eu instalei uma VM VirtualBox com o Windows e usei exatamente a mesma configuração. Agora, a VM do Windows que eu executei no VirtualBox para Mac é a mesma que a máquina física do Windows que usei até agora.

O problema é que o redirecionamento de url não está funcionando. Da máquina convidada (windows) eu navego até o URL que deve ser redirecionado e isso não acontece de maneira apropriada. Presumo que isso tenha algo a ver com a configuração da rede para a máquina virtual - preciso criar regras de encaminhamento de porta? Quais?

Aqui está a regra - do web.config (funciona muito bem em uma máquina física):

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

Em relação à VM - defini dois adaptadores de rede:

  • 1: NAT

  • 2: adaptador somente host

Note que eu tenho acesso à web a partir da máquina de convidado, eu também posso acessar meu serviço web localmente - tudo está bem, exceto pela reescrita do URL quando a regra é aplicada.

    
por Doron Zavelevsky 04.03.2015 / 12:16

1 resposta

3

Fora da caixa, o UrlRewrite só pode reescrever a mesma página, assim:

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

Parece que você está tentando fazer uma reescrita para outro site em outro domínio e, possivelmente, fazer o descarregamento de SSL - isso é o que Proxy reverso faz. Para que isso funcione, você precisa ter o Roteamento de Solicitação de Aplicativo instalado.

O que eu faria para depurar esta configuração é:

  1. Substitua a ação de reescrever por um redirecionamento e veja se funciona. Dessa forma, você garante que a regra seja aplicada à sua solicitação.
  2. Se tudo o que você está tentando fazer é reescrever seu site, altere o URL de reescrita para um parente.
  3. Se você realmente precisa fazer uma reescrita para um site diferente, instale e configure o ARR (o que por si só pode trazer outro conjunto de problemas)
por 19.03.2015 / 12:50