.htaccess: redirecionamento automático para sites em manutenção

Aprenda como fazer redirecionamento automático para sites em manutenção usando códigos .htaccess.

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.

[baseado article_name=”htaccess Redirect to Maintenance Page” article_link=”http://perishablepress.com/htaccess-redirect-maintenance-page-site-updates/” site_name=”Perishable Press” site_link=”http://perishablepress.com/”]

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!