我的网站将停机维护一段时间,我想确保(1)search引擎为每个页面看到一个HTTP 503错误代码,(2)人类看到一个描述停机的友好信息,符合停机时间SEO最佳实践 。
如何设置IIS 7.5,以便每个请求都获得一个自定义的503错误消息?
一种方法是使用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>
这照顾了search引擎,对于用户你可以添加以下内容:
<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页面中。
如果使用.NET应用程序与IIS,还可以使用app_offline.htm文件closures应用程序,并防止使用适当的503错误代码请求页面。
你可以在下面设置一个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>