如何使用自定义 503 错误代码在 IIS 中添加站点范围的停机错误消息?

Ani*_*van 11 iis iis-7.5

我的网站将停机维护一段时间,我想确保 (1) 搜索引擎看到每个页面的 HTTP 503 错误代码,以及 (2) 人类看到描述停机时间的友好消息,符合停机 SEO 最佳实践

如何设置 IIS 7.5 以便每个请求都收到自定义 503 错误消息?

Pet*_*orf 13

一种方法是使用Url-Rewrite扩展。

然后,您可以使用这样的规则来捕获所有请求:

<system.webServer>
    ...
    <rewrite>
        <rules>
            <rule name="SiteDown" stopProcessing="true">
                <match url=".*" />
                <action type="CustomResponse" statusCode="503" statusReason="Down for maintenance" statusDescription="will be back up soon" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

这负责搜索引擎,对于用户,您可以添加以下内容:

<system.webServer>
      ...
     <httpErrors existingResponse="Auto" errorMode="Custom" defaultResponseMode="File">
        <remove statusCode="503" subStatusCode="-1" />
        <error statusCode="503" path="503.html" />
     </httpErrors>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

然后将一个 503.html 文件放在您网站的根目录中,该文件有一个很好的错误消息。因为您不能在页面中使用站点本身的样式或图像,所以您需要链接到另一个站点或将所有样式和图像内嵌在 html 页面中。


Ani*_*van 9

如果使用带有 IIS 的 .NET 应用程序,还可以使用app_offline.htm文件来关闭应用程序并防止使用适当的 503 错误代码请求页面。

  • +1,但对于 ASP.NET 2.0 应用程序,返回的状态代码是 404 !解决办法是临时设置4.0应用池到站点 (2认同)