Por mais que haja planejamento no desenvolvimento web no momento de passar uma versão de um site que esteja em homolagação para produção, não raramente é preciso colocar o site em manutenção. Na verdade, a manutenção ocorre não somente nessas situações, mas em diversas outras (por exemplo, a integridade dos arquivos que compõem um sistema web foi comprometida e é preciso colocar o sistema em manutenção para identificar o erro e/ou restaurar backups).

Dentre as diversas técnicas/recomendações para estas e outras situações, certamenta uma das mais indicadas é realizar um redirecionamento automático para sites em manutenção.

Saber redirecionar os visitantes para uma página de manutenção ou outra página temporária é um instrumento essencial para ter em seu cinto de ferramentas web. Usando .htaccess, redirecionar os visitantes para uma página de manutenção temporária é simples e eficaz. Tudo o que é preciso para redirecionar os visitantes é o seguinte código, colocado no arquivo .htaccess na raiz do site:

Esta aí o código para o copiar-e-colar; mas, claro, existem alguns detalhes para aqueles que podem não estar familiarizados com o processo.

Explicação do código de redirecionamento

Explicando cada linha do código de redirecionamento mostrado acima, tem-se o seguinte:

  1. Meramente um comentário para explicar a finalidade do código;
  2. Checa pelo módulo mod_rewrite do Apache (termina na linha 8);
  3. Habilita o motor de reescrita mod_rewrite do Apache (dependendo da configuração do seu servidor, essa linha pode ser desnecessária);
  4. Verifica se o pedido está vindo de seu computador. Se sim, então o redirecionamento não acontece (se você for redirecionado, quem vai fazer a manutenção?); para que isso funcione, é preciso alterar os números nesta linha para bater com o seu próprio endereço IP;
  5. Impede que um loop infinito aconteça, testando o pedido contra o nome da página de manutenção;
  6. Impede que o redirecionamento aconteça com alguns tipos de imagem (afinal, sua página de manutenção pode conter algumas);
  7. Redireciona todas as requisições que atendam ambas condições de reescrita anteriores para a página de manutenção especificada; uma das melhores estratégias é responder com o código 302 (“Movido Temporariamente”).

Redirecionamento de tráfego com htaccess

Para redirecionar os visitantes para uma página de manutenção, coloque o código anterior em um arquivo .htaccess localizado na raiz do site (se o arquivo já existe, edite-o). Isso garantirá que todas as páginas e recursos contidos dentro do domínio sejam redirecionados. Se é preciso redirecionar pedidos apenas de um subdiretório específico dentro do domínio, o arquivo .htaccess contendo essas regras deve ser colocado neste diretório em questão (ao invés de na raiz).

Agora que o htaccess está no lugar, é preciso criar e fazer upload da página de manutenção, por exemplo, com o nome maintenance.html. Este é um arquivo HTML comum, então você pode usar praticamente todos os recursos que a linguagem oferece – de fato, o arquivo não precisa ser, necessariamente, escrito em HTML; é possível usar, por exemplo, PHP para fazer tudo dinâmico, mas lembre-se de alterar as duas instâncias do nome do arquivo no código do .htaccess para corresponder ao nome real do arquivo.

Múltiplos endereços IP

Para o caso de a manutenção ser feita por uma equipe ou alguma situação semelhante, também é possível indicar múltiplos endereço de IP para prevenir o redirecionamento. Basicamente, existem 2 maneiras.

A primeira consiste em adicionar mais instruções RewriteCond ao código anterior:

Com este método, edite cada endereço IP para coincidir com o(s) seu(s) próprio(s) e/ou ou de sua equipe e e adicione/remova tantos IPs conforme necessário.

O segundo método é igualmente eficaz:

Este método é um pouco mais simples, mas não tão eficiente para SEO, já que os bots de indexação podem visitar o site enquanto a manutenção está acontecendo. O primeiro método envia uma resposta 302, enquanto o segundo envia uma menos precisa 403 (“Erro de Proibição”, que indica que o cliente não pode acessar os recursos por aquela requisição).

Use o método que você mais se identificou, levando sempre as necessidades/requisitos do projeto em consideração.

Considerações finais

Evidentemente, essas não são as únicas medidas que podem ser tomadas para redirecionamento automático para sites em manutenção. Por exemplo, é possível habilitar o pedido de senha via htaccess; permitir o acesso a alguma(s) categoria(s) de visitantes; solicitar redirecionamentos específicos; e muito mais.

Entretanto, para manter no básico a proposta do artigo de mostrar como fazer redirecionamento automático para quando um site ou sistema web está em manutenção, os códigos mostrados bastam.

Mas, até para o básico, há sempre novas técnicas e possibilidades possíveis. Então, caso tenha alguma outra dica ou maneira diferente de fazer redirecionamento automático para sites em manutenção, compartilhe fazendo um comentário!