Retorno de URL do IIS 7.5 em loop

1

Eu tenho um webapp que está localizado em / subdir1 / subdir2 / Eu gostaria de simplificá-lo para os usuários, adicionando um subdomínio sub.domain.com, mas ele continua em loop. Eu tentei adicionar regras adicionais para evitar isso, mas sem alegria.

Então, o que acontece é o link

Minha regra no web.config:

<rule name="subdomain" stopProcessing="true">
                <match url="^(?!sub/)(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="sub.domain.com/subdir1/subdir2/" negate="true" />
                    <add input="{HTTP_HOST}" pattern="sub.domain.com" />
                </conditions>
                <action type="Rewrite" url="subdir1/subdir2/" appendQueryString="true" />
            </rule>

Alguma idéia?

Editar: Então, o que estou realmente tentando fazer é facilitar para os usuários. Agora eles precisam digitar www.domain.com/subdir1/subdir2/ para acessar a página de login do produto. O que eu queria fazer era criar um único subdomínio que fosse reescrito para o link acima. Em vez de digitar o URL longo, vá para sub.domain.com e ele redirecionará ou reconfigurará para o local www.domain.com/subdir1/subdir2/. Espero que torne meu desejo um pouco mais claro.

Obrigado!

    
por Ross R 17.09.2013 / 22:59

1 resposta

1

{HTTP_HOST} representa apenas a parte do host de um URI:

http://[HTTP_HOST]/subdir/index.html .

Assim, sua primeira condição é irrelevante (nunca será avaliada como falsa).

O que você quer é {PATH_INFO} :

<add input="{PATH_INFO}" pattern="^/subdir1/subdir2" negate="true" />

Dizer com eficiência: "Se essa parte da URL: http://sub.domain.com[PATH_INFO] começar com" / subdir1 / subdir2 ", não reescreva

Se você quiser que /additional/path/to/content.html seja reescrito em /subdir1/subdir2/additional/path/to/content.html , precisará de um faz referência de volta à correspondência também:

<action type="Rewrite" url="subdir1/subdir2/{R:0}" appendQueryString="true" />
    
por 17.09.2013 / 23:19