30
oct. 07
Faire une belle page de maintenance grace à un htaccess
Par Guillaume BIZET | Lien permanent
Dans mes explorations de htaccess pour réaliser ce que je voulais au niveau de mes urls je suis tombé sur un bout de code que j'ai un peu modifié afin de pouvoir mettre en place une belle page de maintenance.
Voilà le htaccess orginal
#Redirection en cas de maintenance
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^198\.198\.198\.198
RewriteRule $ /maintenance.html [R=302,L]
Expliquons pas à pas ce que cela veut dire
RewriteEngine on
Active le module qui permet réécriture d'url
RewriteCond %{REQUEST_URI} !/maintenance.html$
Cette première condition dit : Pour toutes les pages autres que maintenance.html
RewriteCond %{REMOTE_ADDR} !^198\.198\.198\.198
Cette première condition dit : et sauf pour l'adresse ip suivante 198.198.198.198
RewriteRule $ /maintenance.html [R=302,L]
Et renvoyez vers maintenance.html. Le code 302 indique que la redirection est temporaire, c'est au cas ou un moteur de recherche indexe au moment de la maintenance
Mais le "problème" c'est que cela vous donne une belle page blanche avec le texte qui est contenu dans maintenance.html bien sûr mais sans aucune mise en forme.
Du coup il faut aussi autoriser d'autres fichiers pour rendre cette page de maintenance plus sympa
Voici donc le code modifié pour arriver au résultats souhaité
#Redirection en cas de maintenance
RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REQUEST_URI} !/maintenance.css$
RewriteCond %{REQUEST_URI} !/blog.jpg$
RewriteCond %{REMOTE_ADDR} !^198\.198\.198\.198
RewriteRule $ /maintenance.html [R=302,L]
J'autorise aussi la lecteure du fichier css et de l'image dont j'ai besoin dans ce fichier CSS. Ainsi si vous avez d'autres ficheirs à autoriser il vous faudra répéter la condition RewriteCond %{REQUEST_URI} !/fichier.extension$ autant de fois que nécessaire
Voilà les pages avant et après pour ce blog :

Dorénavant vous aurez cette belle page de maintenance sur ce blog quand je ferais des mise à jour sur le blog

































Commentaires
mistafab
30/10/2007 - 10:22
Bien vu ! le genre de detail qui passe trop souvent à la trappe alors que pourtant ça à son importance pour ne pas destabiliser le visiteur
Tomtom
30/10/2007 - 11:32
C'est marrant, c'est encore une fois ce qui me fallait
Guillaume
30/10/2007 - 11:35
@mistafab : merci
@Tomtom : de rien
JFMichaud
30/10/2007 - 14:33
J'aimerais bien voir ton htaccess final...il commence à se remplir passablement
DrumStyle
05/11/2007 - 15:02
Le problème c'est que à moi ça me met une erreur 500
Je suis chez free.
fabrice
27/12/2007 - 16:05
belle solution très pro
mais moi aussi chez free, je viens d'essayer et comme DrumStyle, l'erreur 500 est là car Free ne doit pas autoriser la réécriture d'url.
je viens de trouver une autre solution encore plus simple avec le plugin Private Blog (http://nooono.free.fr/index.php?pos...)
Faber
27/05/2008 - 19:25
Impec comme solution, c'est ce que j'utilise
Par contre pour gagner du temps et éviter de se taper 1 ligne pour chaque image ou feuille de style, il est possible d'utiliser les expressions régulières là aussi.
Exemple pour autoriser les fichiers .css, .jpg et .gif :
RewriteCond %{REQUEST_URI} !^/.*\.(gif|css|jpg)$