Page de maintenance d’un site internet

Par: Alex | Lead développeur

Lors de la mise jour d’un site Internet, il est bien souvent indispensable de faire une page de maintenance. Et plus particulièrement pour les sites fonctionnant avec un logiciel cms (Système de gestion de contenu), puisque les montées de version impliquent parfois un temps de maintenance allant de plusieurs minutes à plusieurs heures.
Afin de pouvoir accéder au site, alors que les autres internautes seront redirigés vers une page HTML fixe, nous allons utiliser une redirection configurée dans le fichier htaccess à la racine du site.

Pour commencer il faut absolument que le mod_rewrite de apache soit activé. Afin de vérifier que ce soit le cas, une simple commande phpinfo() suffit. Si ce module apache n’est pas installé ou activé, il faut demander à votre hébergeur de d’activer le mod_rewrite..

Dans le fichier htaccess, il suffit alors de rajouter le lignes :

[php]
RewriteCond %{REMOTE_ADDR} !^255\.255\.255\.1
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REQUEST_URI} !main\.css$
RewriteCond %{REQUEST_URI} !\.png$
RewriteRule $ /maintenance.html [R=302,L]
[/php]

  • La première ligne permet de ne pas être redirigé si l’on vient de l’IP 255.255.255.1, qu’il faut naturellement remplacer cette adresse IP par la votre. Notez que vous pouvez dupliquez cette ligne plusieurs fois, pour pouvoir définir plusieurs ip qui ne seront pas redirigées.
  • La seconde ligne permet de ne pas être redirigé quand on affiche la page de maintenance (ici maintenance.html) et éviter ainsi une redirection en boucle.
  • La Troisième ligne permet d’utiliser une feuille de style (nommée main.css) dans la page de maintenance. Si cette ligne n’est pas ajoutée, l’appel de la feuille css dans le header du fichier html échouera, puisque le serveur apache applique la redirection.
  • La quatrième ligne permet d’afficher des images png dans la page de maintenance. Comme pour la feuille de style, leur affichage échouera si cette ligne n’est pas présente. Notez que vous pouvez rajouter une ligne équivalente pour que les images jpg s’affichent également.
  • Enfin la dernière ligne redirige toutes les requêtes vers la page maintenance.html avec un code 302 pour préciser que la redirection n’est que temporaire.

Une fois cette configuration mise en place, vous pouvez librement mettre à jour votre site pendant que les internautes, eux, accèderont à votre page de maintenance.

Cet article a été rédigé par:

Alex | 15 ans d'experience

Lead développeur

Encadre tous les process de développement de l'agence

Vous êtes un d'accélérer votre projet