我们在 IIS7 中有两个站点,均在端口 80 上。一个是我们的实际网站(MAIN),另一个是维护站点(MAINTENANCE),我们在部署新版本的 MAIN 时启动该站点(并停止另一个站点)。
当我们上线维护时,如果您浏览我们的某个子文件夹(即http://维护/product1)您将得到 404。我想使用 URL 重写模块重定向到站点的根目录(http://维护/)。
我可以以基本方式使其工作,但图像和 CSS 不起作用。在其他尝试中,我最终得到了持续的重定向。
这可能吗?
答案1
对于那些通过 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>
不知道这是否是最好的方法,但它对我来说很有效。
:)