web-dev-qa-db-ja.com

IISでサイト全体のダウンタイムエラーメッセージをカスタム503エラーコードと共に追加する方法

私のウェブサイトはしばらくの間メンテナンスのためにダウンします。(1)検索エンジンがすべてのページのHTTP 503エラーコードを確認し、(2)人間がダウンタイムを説明するわかりやすいメッセージを確認します。 ダウンタイムSEOのベストプラクティス

IIS 7.5を設定して、すべての要求がカスタム503エラーメッセージを受け取るようにするにはどうすればよいですか?

8
Anirvan

1つの方法は rl-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>

これにより、検索エンジンが処理されます。ユーザーは、以下を追加できます。

<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ファイルをサイトのルートに配置します。このファイルには、Niceエラーメッセージが含まれています。サイト自体にあるページではスタイルまたは画像を使用できないため、別のサイトにリンクするか、すべてのスタイルと画像をHTMLページにインラインで配置する必要があります。

11
Peter Hahndorf

IISで.NETアプリケーションを使用している場合は、 app_offline.htm ファイルを使用してアプリケーションをシャットダウンし、適切な503エラーコードでページが要求されないようにすることもできます。

8
Anirvan

以下で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>
3
steve