У нас есть два сайта в 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>
Не знаю, лучший ли это способ, но у меня он сработал.
:)