Módulo de Reescrita de URL do IIS7: Força para

2

Temos dois sites no IIS7, ambos na porta 80. Um é nosso site real (MAIN), o outro é um site de manutenção (MANUTENÇÃO) que iniciamos (e interrompemos o outro) quando estamos implantando uma nova versão do MAIN .

Quando colocamos MANUTENÇÃO ao vivo, se você navegar até uma de nossas subpastas (ou seja, link ), você receberá um 404. Quero usá-lo o módulo de regravação de URL para redirecionar para a raiz do site ( link ).

Eu posso fazer isso funcionar de maneira básica, mas a imagem e o css não estão funcionando. Em outras tentativas, acabei com um redirecionamento contínuo.

Isso é possível?

    
por neildeadman 11.10.2010 / 16:00

1 resposta

2

Para quem chega aqui pelo Google, consegui que funcionasse com a seguinte regra:

<rewrite>
<rules>
        <clear />
        <rule name="Force HTTP" stopProcessing="true">
            <match url="(.*)" />
            <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                <add input="{HTTPS}" pattern="on" />
            </conditions>
            <action type="Redirect" url="/{R:1}" redirectType="Temporary" />
        </rule>
        <rule name="Allow Local Resources" stopProcessing="true">
            <match url=".*" />
            <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
                <add input="{REQUEST_FILENAME}" pattern="SiteMaintenance.png" />
                <add input="{REQUEST_FILENAME}" pattern="Stylesheet.css" />
            </conditions>
            <action type="None" />
        </rule>
        <rule name="Check Is Root" stopProcessing="true">
            <match url="^.+$" negate="false" />
            <conditions logicalGrouping="MatchAny" trackAllCaptures="false" />
            <action type="Redirect" url="/" appendQueryString="false" redirectType="Temporary" />
        </rule>
</rules>
</rewrite>

Não faço ideia se este é o melhor caminho, mas funcionou para mim.

:)

    
por 11.10.2010 / 16:58

Tags