Назад | Перейти на главную страницу

Модуль перезаписи URL-адреса IIS7: принудительное использование root

У нас есть два сайта в IIS7, оба на порте 80. Один - это наш фактический веб-сайт (MAIN), а другой - сайт обслуживания (MAINTENANCE), который мы запускаем (и останавливаем другой) при развертывании новой версии MAIN.

Когда мы запускаем ОБСЛУЖИВАНИЕ, если вы перейдете в одну из наших подпапок (т.е. http: // обслуживание / продукт1) вы получите 404. Я хочу использовать модуль URL Rewrite для перенаправления в корень сайта (http: // обслуживание /).

Я могу заставить это работать обычным образом, но изображение и CSS не работают. В других попытках я получал постоянное перенаправление.

Это возможно?

Для всех, кто приезжает сюда через Google, мне удалось заставить его работать со следующим правилом:

<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>

Не знаю, лучший ли это способ, но у меня он сработал.

:)