我的网站将停机维护一段时间,我想确保 (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>