Fazer a manutenção de um servidor à profissional

Recentemente deparei-me novamente com a necessidade de colocar um portal em modo de manutenção para proceder a algumas actualizações e ia fazer como habitual de acrescentas três linhas ao inicio do ficheiro index.php, algo do género:

include('modomanutencao.php'); die();

Mas desta vez isto não me satisfez e senti a necessidade de fazer isto de uma forma mais “profissional” não a desenrascar, porque assim o site continuaria online caso entrassem por outro URL.

E o primeiro pensamento que me veio à cabeça foi utilizar o htaccess. Assim comecei a escrever algumas regras para o htaccess redireccionar todos os utilizadores para o modomanutencao.php menos eu, pois tinha de fazer testes a tudo.

RewriteCond %{HTTP:portalmanutencao} !^1$
RewriteRule ^(.*)$ modomanutencao.php

E o que fazem estas duas linhas? A primeira é uma condição que diz que todos os browsers que não enviem o Header portalmanutencao com o valor 1 têm de seguir a regra da segunda linha que diz que todas as páginas que tentarem aceder serão redireccionadas para a página modomanutencao.php

Para mudar e acrescentar HTTP Headers podem utilizar o seguinte plugin caso utilizem o browser Mozilla Firefox: Modify Headers

Depois da manutenção feita quando estava a fazer o meu jogging ao fim do dia isto ficou-me na cabeça e pus-me a pensar noutras maneiras de se fazer isto e surgiu-me mais uma ideia também utilizando o htaccess, que basicamente funciona de maneira parecida à interior, só que neste caso redirecciona também o utilizador para a página de modo de manutenção exceptuando quem tiver o IP definido.

ErrorDocument 503 http://joaopedropereira.com/modomanutencao.php
Order deny,allow
Deny from all
Allow from 127.0.0.1 #colocar o IP de quem estiver a fazer a manutenção

Aprender mais sobre o mod_rewrite do apache

Existem mais formas de o fazer, utilizando htaccess, PHP, etc.

Como é que vocês fazem quando definem o modo de manutenção nas páginas que administram?

2 comments

  1. Neste último excerto de código, não sei se será bom colocar o erro 403 Forbidden.

    Digo isto um bocado “às cegas”, mas dá-me ideia que por exemplo a nível de motores de busca, eles não seguem mais essa página, aparentemente por não ser de acesso permitido (forbidden). Visto que o documento não leva à informação, seria talvez mais correcto 503 Service Unavailable.

    De qualquer maneira estas dicas é só para ser “correcto” perante outros clientes na web, como bots de busca, etc, porque a nível de browsers funciona bem 😉

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.