Aller au contenu | Aller au menu | Aller à la recherche
Je vous l'avais promis, je vais essayé de publier plus régulièrement des billets maintenant que le site de mon association est en ligne. Alors voilà je vais vous livrer une astuce qui vous simplifiera sans doute énormément la vie.
Tout d'abord mettons nous en situation. Eric, le tableau ... non c'est pas ça, je confond. Je disais donc voici le problème: vous avez un site en production et vous souhaitez le mettre à jour. Comme toute mise à jour elle va entraîner des phénomènes étranges lors de son déroulement. L'idéal serait de bloquer proprement l'accès au site pendant que vous seul pouvez y accèder afin de mettre à jour les fichiers et vérifiez que tout fonctionne comme prévu. Ca vous paraît utopique ? Pourtant c'est très facile à mettre en place. Voici comment.
La clé de cette astuce est le génial mod_rewrite, un module pour le serveur Apache. Le principe est tout bête: on interdit l'accès à toute page du site à toute IP autre que la notre.
Pour cela il suffit de créer un fichier nommé .htaccess dans le répertoire racine de votre site et d'y mettre :
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^1\.2\.3\.4$
RewriteRule .* pages/maintenance.html [L]
Si au premier abord ces lignes semble assez cryptiques, elles sont en fait assez simples. La première active la réécriture d'URL par mod_rewrite. La seconde indique que seules les IP autres que 1.2.3.4 seront prisent en compte pour la troisième ligne qui redirige toute requête d'URL vers pages/maintenance.html. Il suffit de remplacer 1.2.3.4 par votre IP.
Quelques remarques avant de continuer. Les points séparant les parties de l'IP doivent être échappés car ils ont une signification. La commande RewriteRule prend pour premier argument une expression rationnelle (souvent appellée abusivement expression régulière à cause du faux-amis qu'est regular en Anglais) et pour second argument une URL qui sera utilisée si l'URL demandée correspond à l'expression rationnelle. Enfin le [L] indique qu'il ne faut pas continuer à tenter de réécrire l'URL. Pour plus de détails, reportez vous à la documentation officielle.
Cette méthode fonctionne très bien pour une page HTML simple mais si vous essayez d'y inclure une image vous allez avoir un problème. En effet la troisième ligne redirige toute requête vers pages/maintenance.html, y compris les requêtes pour vos images. La solution est relativement simple en fait. Il suffit de modifier le code pour obtenir ceci :
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^1\.2\.3\.4$
RewriteCond %{REQUEST_URI} !^/images
RewriteRule .* pages/maintenance.html [L]
La ligne supplémentaire rajoute une condition à la réécriture d'URL. Il faut à présent que l'URL demandée ne commence pas par /images. Ainsi vos requêtes vers vos images ne seront pas réécrites.
Voilà vous pouvez maintenant faire vos mises à jours tranquillement et proprement. Par contre quand vous avez terminé, n'oubliez pas de commenter ces lignes car vous aurez toujours accès au site mais pas vos visiteurs.
lundi 29 mars 2004 à 22h30 - Développement Web 9 1
Fidèle lecteur du Glazblog, je viens de tomber sur une bombe. Un truc énorme dont ont va entendre parler pendant des mois à n'en pas douter.
Il est de notoriété publique que le support des standards par Internet Explorer est inversement proportionnel à son taux d'utilisation. Partant de ce funeste constat beaucoup utilisent des hacks CSS pour arriver à contourner tant bien que mal ces limitations. Bien sûr ces hacks apportent leurs lots de soucis supplémentaires et donc de cheuveux en moins sur la tête des développeurs Web.
Microsoft a clairement fait savoir qu'ils ne comptaient pas faire le nécessaire pour qu'Internet Explorer améliore son support des standards. En tout cas pas avant la sortie de MSN Explorer avec Longhorn en 2006 au plus tôt.
C'est au moment où certains étaient en train de chercher de quoi se pendre (il faut bien avouer que les souris et les clavier sans fils ça n'a pas que des avantages), que débarque Dean Edwards. Honnêtement je n'avait jamais entendu parlé de ce gars mais nul doute que son nom va être sur les lèvres de tous pour un bon moment.
Cet illustre inconnu n'a fait rien d'autre que de trouver une parade à la plupart des limitations d'Internet Explorer. Et d'une manière à la fois simple et propre. Pour tout vous avouer je trouve ça proprement incroyable ce qu'il a réalisé. Son mécanisme, appellé IE7, est en fait constitué d'un fichier qui contient un comportement DHTML.
Pour l'utiliser, il n'y a pas besoin de modifier ni le code HTML, ni le code CSS. Il suffit d'ajouter cette ligne dans vos pages HTML :
<link rel="stylesheet" src="ie7-html.css" type="text/css"/>
Le principe de fonctionnement est aussi simple que génial : le comportement DHTML charge, analyse et réécrit le code CSS au chargement de la page. Toute la magie est dans le fait que ce comportement transcrit les règles que ne comprend pas Internet Explorer en règles qu'il comprend.
Ce comportement DHTML fonctionne avec Internet Explorer 5.5 et 6. Essayez les tests, vous serez bluffés j'en suis sûr.
jeudi 4 mars 2004 à 13h38 - Développement Web 1 1
© 2003-2009 Jean-Marc Fontaine - Tous droits réservés
XHTML - CSS - DotClear - Technorati
Les billets de ce blog sont sous licence Creative Commons