Problema ao redirecionar uma pasta usando a reconfiguração de URL do IIS

2

Usando o Url Rewrite, estou tentando redirecionar / foo_bar / * para / foo / *. Eu tentei isso:

<rule name="Redirect foo_bar to foo" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{HTTP_URL}" pattern="^/foo_bar/(.*)" />
    </conditions>
    <action type="Redirect" url="/foo/{R:1}" />
</rule>

Mas isso apenas redireciona para / foo / foo_bar / *. Para onde estou indo errado?

    
por Jonathan 10.12.2013 / 19:57

1 resposta

4

Antes de tudo, você especifica uma regra para corresponder a todas as solicitações (. *) e, em seguida, adiciona uma condição para uma URL específica.

Você deve ter seus critérios de limitação na partida:

<match url="^/foo_bar/(.*)" />

você não precisa mais da condição. Você usa condições apenas para critérios adicionais que não são baseados no URL.

Em segundo lugar, {R: 1} faz referência a toda a url da correspondência, portanto, se você tiver /foo_bar/ na URL, o que está em {R: 1}, explicará por que ele redireciona para / foo_bar / .

Com sua nova regra de correspondência, {R: 1} retém o que está em (.*) , não o URL inteiro, por isso deve funcionar.

    
por 10.12.2013 / 20:32