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

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

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

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

答案1

一种方法是使用URL重写扩大。

然后您可以使用如下规则来捕获所有请求:

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

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

<system.webServer>
      ...
     <httpErrors existingResponse="Auto" errorMode="Custom" defaultResponseMode="File">
        <remove statusCode="503" subStatusCode="-1" />
        <error statusCode="503" path="503.html" />
     </httpErrors>
</system.webServer>

然后在站点根目录中放置一个 503.html 文件,其中包含一条错误消息。由于您无法在页面中使用站点本身的样式或图像,因此您需要链接到另一个站点或将所有样式和图像内联到 html 页面中。

答案2

如果你在 IIS 中使用 .NET 应用程序,也可以使用应用程序离线.htm文件来关闭应用程序并阻止使用适当的 503 错误代码请求页面。

答案3

您可以在下面设置一个 web.config 并将其放在您的根目录中。

<rule name="Send 503" patternSyntax="Wildcard" stopProcessing="true">
  <match url="*" />
  <action type="CustomResponse" statusCode="503" subStatusCode="0" statusReason="Service Unavailable" statusDescription="The server is down for maintenance" />
</rule>

相关内容