Lorsqu'on programme un site ou une application web, il arrive parfois qu'on ait à procéder à des changements importants sur le serveur et qu'on ait besoin de placer le site en maintenance pendant le temps qu'on applique les modifications. Dans mon cas, c'est souvent relié à un changement de structure dans la base de données ou dans les fonctions et procédures stockées.
C'est pourquoi je prends la précaution de faire une redirection temporaire à une page de maintenance en attendant que le processus soit complété pour éviter que tout se mette à briser si des visiteurs arrivent au même moment (ce qui est toujours le cas).
Habituellement, la façon la plus simple est de créer une page vierge (avec design ou pas) et d'y inscrire un message annonçant qu'une maintenance est en cours :
maintenance.html
Nous sommes désolé, le service n'est pas accessible dans l'immédiat. Nous sommes en train d'améliorer le service qui atteindra un niveau inégalé. Votre visite est importante pour nous, veuillez revenir plus tard. N'ayez crainte, le site sera de retour dès que notre équipe de développeurs aura terminé leur tournoi de babyfoot.
.htaccess
Cela dit, on peut ensuite utiliser le fichier .htaccess à la racine pour y inscrire les instructions mod_rewrite suivantes :
RewriteCond %{SCRIPT_FILENAME} !maintenance\.html$ [NC]
RewriteRule ^(.*)$ /maintenance.html [L]
La dernière ligne indique la page où le message est inscrit. Naturellement, on ajoute une condition pour exclure la page elle-même pour ne pas faire une redirection en boucle infinie.
Quand il s'agit d'un site de commerce électronique, par exemple s'il y a paiement par PayPal, il serait judicieux de ne pas oublier d'exclure la page qui reçoit l'IPN (Instant Payment Notification) car c'est elle qui reçoit tous les messages en provenance du service externe et elle devrait toujours être accessible. Dans ce cas, excluez la en ajoutant une condition supplémentaire :
RewriteCond %{SCRIPT_FILENAME} !paypal\.notifications\.php$ [NC]
dimanche 4 avril 2010
0 réponse à "Créer une page de maintenance pour un site"
S'abonner à :
Publier des commentaires (Atom)