Como adicionar uma mensagem de erro de tempo de inatividade em todo o site no IIS, com um código de erro 503 personalizado?

6

Meu site estará em manutenção por algum tempo, e quero ter certeza de que (1) os mecanismos de busca veem um código de erro HTTP 503 para cada página, e (2) humanos veem uma mensagem amigável descrevendo o tempo de inatividade, de acordo com as melhores práticas de tempo de inatividade de SEO .

Como configuro o IIS 7.5 de modo que cada solicitação receba uma mensagem de erro personalizada 503?

    
por Anirvan 27.02.2013 / 19:59

3 respostas

8

Uma maneira é usar a extensão Url-Rewrite .

Você pode usar uma regra como essa para capturar todas as solicitações:

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

Isso cuida dos mecanismos de pesquisa. Para os usuários, você pode adicionar o seguinte:

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

e, em seguida, coloque um arquivo 503.html na raiz do seu site que tenha uma boa mensagem de erro. Porque você não pode usar estilos ou imagens na página que estão no próprio site, você precisa vincular a outro site ou colocar todos os estilos e imagens em linha na página html.

    
por 27.02.2013 / 20:40
7

Se estiver usando um aplicativo .NET com o IIS, também é possível usar um app_offline.htm arquivo para encerrar um aplicativo e impedir que páginas sejam solicitadas com um código de erro 503 apropriado.

    
por 01.03.2013 / 00:27
3

Você pode configurar um web.config a seguir e colocá-lo em seu diretório raiz.

<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>
    
por 27.02.2013 / 20:33

Tags