skip to main | skip to sidebar
Code 18
Manuel du savoir-faire à l'usage des geeks et des curieux
RSS
  • Accueil
  • Le web au Québec
  • Liens
  • Twitter
  • Facebook
  • À propos

samedi 22 novembre 2008

Redirections avec .htaccess

Publié par Infinite Loop, à 10 h 46 0 commentaire

Sous Apache, il est possible de créer des redirections au niveau serveur grâce au fichier .htaccess. Cette méthode possède au moins quatre avantages :

  • Permet d'éviter d'utiliser le tag <meta http-equiv="refresh"> (non recommandé)
  • Avoir des règles de redirections même sur des pages HTML non dynamiques ou des répertoires
  • Garde le code source dynamique plus "propre"
  • Meilleure structure puisque les redirections sont regroupées dans un même fichier
Comme une requête HTTP passe d'abord par le serveur web, celui-ci tient compte des règles inscrites dans .htaccess avant même d'accéder à la page demandée. On utilisera généralement ce genre de redirection lorsque le lien aura changé de façon permanente (redirection 301).

Sous Linux, un fichier commençant par un point est un fichier caché. On pourra prendre pour acquis que le fichier .htaccess en est un qui ne comporte pas de nom, seulement une extension. Pour ajouter une redirection, il faudra d'abord créer le fichier .htaccess et le déposer à la racine du site (s'il n'existe pas déjà; il est aussi possible d'en avoir un dans chaque répertoire).

Pour créer une règle de redirection :
  • Ajouter une ligne dans le fichier en respectant la syntaxe suivante :
    Redirect 301 [ancien chemin] [nouveau chemin]

    Par exemple :
    Redirect 301 /Dev/ancienne_page.html /Dev/nouvelle_page.html

  • La redirection fonctionnera même si l'ancienne page ou répertoire n'existe plus physiquement sur le serveur
  • Le chemin redirigé correspond à la nouvelle adresse de la ressource, donc on peut spécifier aussi l'URL complète pointant vers un site se trouvant sur un autre domaine
  • Enregistrer le fichier et l'envoyer sur le serveur
  • Tester en accédant à l'ancien chemin. La redirection se fera automatiquement.
Pour mieux comprendre ce qui se passe au niveau HTTP, je vous suggère de suivre le processus à l'aide de l'extension Firefox Live HTTP Header.


Tags: Apache

vendredi 21 novembre 2008

Introduction à prototype.js

Publié par Infinite Loop, à 22 h 44 0 commentaire

J'ai commencé à utiliser la librarie prototype.js quelque part en 2006 et dès le départ, j'ai apprécié la facilité à laquelle je pouvais écrire du code et la clareté des énoncés. Le DHTML et le Ajax étant maintenant devenus des incontournables dans des Rich Internet Applications (RIA), les programmeurs qui font aujourd'hui le saut à prototype doivent changer leurs habitudes et intégrer les nouvelles façons de faire.

Notion fondamentale de la librairie
La notation utilisée dans prototype permet d'utiliser le raccourci $ pour accéder à un élément par son id. Ainsi, les deux notations suivantes sont équivalentes :

/* Sans prototype */
document.getElementById('divContent')

/* Avec prototype */
$('divContent')

Un premier appel
Le framework de prototype met à la disposition des programmeurs plusieurs objets pratiques dont Element, qui permet de modifier directement le DOM (Document Object Model) d'une page web. Par exemple, pour cacher une portion de la page en JavaScript pur, on utilisait généralement quelque chose comme ceci :

/* Cacher l'élément */
document.getElementById('divContent').style.display = 'none';

/* Afficher l'élément */
document.getElementById('divContent').style.display = '';

Tandis que prototype nous permet d'y aller plus simplement :

/* Cacher l'élément */
Element.hide('divContent'); ou $('divContent').hide();

/* Afficher l'élément */
Element.show('divContent'); ou $('divContent').show();

Attacher des événements
Prototype permet aussi de détacher le code JavaScript initialement placé "inline" dans le code HTML. Ainsi, une fonction attachée à un événement onClick d'un bouton pourra être remplacée comme ceci:

Fonction JavaScript attachée inline dans le HTML
<input type="button" id="btn" onClick="myFunction()" />

La portion onClick="myFunction()" de l'exemple ci-dessus pourra être remplacée par une fonction attachée à l'événement click par prototype
Event.observe('btn', 'click', myFunction);

Une fois ces notions de base assimilées, le vrai plaisir commence...


Tags: JavaScript

La meilleure page de l'univers

Publié par Infinite Loop, à 21 h 42 0 commentaire

Pour commencer la fin de semaine du bon pied, allons-y en humour avec le site satirique The Best Page in the Universe, un site ayant généré plus de 225 millions de visites depuis 1997 (9346 ème site le plus visité selon Alexa). Corrosif à souhait, pour des heures de plaisir.


Tags: Liens

jeudi 20 novembre 2008

EasyPHP et activation de mod_rewrite

Publié par Infinite Loop, à 21 h 36 0 commentaire

Une façon simple de créer un environnement de développement de type WAMP (Apache, MySQL et PHP pour Windows, le terme LAMP étant son alter-ego Linux) est d'installer EasyPHP. Cet exécutable installe le tout et crée une configuration pour que ça soit fonctionnel facilement, sans se casser la tête. On accédera au serveur local par http://localhost ou http://127.0.0.1/, où les fichiers (php, html, etc) auront préalablement été déposés dans le répertoire par défaut (dans mon cas C:\Program Files\EasyPHP 2.0b1\www).

Ce qui est bien, c'est que plusieurs extensions d'Apache sont disponibles mais elles ne sont toutefois pas activées lors de l'installation. C'est le cas pour mod_rewrite, un module populaire permettant de créer des règles pour réécrire les urls. Par exemple, on pourra faire en sorte qu'un url comme :

http://www.digg.com/technology.php?popular=24hours
soit traduit par l'engin par :
http://digg.com/technology/popular/24hours

Pour activer le module mod_rewrite dans Apache, on devra modifier la configuration du fichier httpd.conf d'Apache (ce n'est pas exclusif à EasyPHP) :

  • Ouvrir le fichier httpd.conf (dans le répertoire d'installation de Apache ou à partir du tray, cliquer sur l'icône EasyPHP / Configuration / Apache)
  • Trouver la ligne #LoadModule rewrite_module modules/mod_rewrite.so et retirer le dièse (#) pour décommenter la ligne
  • Chercher dans le fichier les instructions AllowOverride None et remplacer par AllowOverride All aux endroits nécessaires. Comme il y en a plusieurs, on pourrait tous les remplacer si on n'est pas certain. La configuration initiale de EasyPHP étant plutôt stricte, ils sont tous à "none" par défaut. Dans mon cas, je développe sur un alias, donc sa configuration se trouve à la toute fin du fichier httpd.conf (un seul changement).
Ensuite, on pourra inscrire les règles de réécriture dans un fichier nommé .htaccess. Mais ça, j'en reparlerai en détails à une autre occasion.


Tags: Apache, PHP

mercredi 19 novembre 2008

User Agent Switcher

Publié par Infinite Loop, à 18 h 45 0 commentaire

Lorsque l'on surf sur le web, certains sites prennent en considération le type de fureteur utilisé pour adapter le contenu ou offrir une mise en page différente. Par exemple, c'est le cas de Google, Yahoo, Facebook et Amazon, qui offrent une mise en page adaptée lorsqu'ils détectent que le visiteur utilise un appareil iPhone (Safari). Au niveau de la programmation, ceci est rendu possible en vérifiant une propriété propre à chaque fureteur qui s'appele le "user-agent".

Si on entre la commande about:config dans la barre d'adresse de Firefox, on pourra voir le user-agent à partir de la propriété nommée general.useragent.extra.firefox dont la valeur est Firefox/3.0.4 (celui que j'utilise présentement).

Une extension de Firefox nommée User Agent Switcher permet de modifier la valeur du user-agent spéficié par le fureteur lors des visites. Pour ajouter un nouveau user-agent, il faut se rendre dans les options de l'extension, sous le menu User Agents, ajouter un nouveau type et le sélectionner dans le menu (Tools / User Agent Switcher).

Par exemple, pour visualiser un site comme le verrait un iPhone, il faut en créer un avec les information suivantes :

  • Description: iPhone
  • User Agent: Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en)
  • App Name: AppleWebKit/420+ (KHTML, like Gecko)
  • App Version: Version/3.0
  • Platform: Mobile/1A542a Safari/419.3
En visitant la page d'accueil de Facebook, on remarquera que le nouveau user-agent est détecté et qu'il nous redirige à sa version pour iPhone située à l'adresse suivante : iphone.facebook.com.

Sinon, certains sites, comme Experts Exchange, restreignent l'accès à leur contenu lorsqu'on y accède par un user-agent normal mais doivent en afficher des portions pour pouvoir être indexé dans Google. En simulant le user-agent du Googlebot, on pourra avoir accès aux réponses, sans même devoir s'inscrire.

Googlebot
  • Description: Googlebot 2.1 (New version)
  • User Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Bonne navigation!


Tags: Extensions Firefox

mardi 18 novembre 2008

Mise en page web avec des tableaux

Publié par Infinite Loop, à 18 h 59 1 commentaire

Lorsqu'on effectue une mise en page d'un site web, il est souvent question de savoir si on doit intégrer les données en utilisant des tableaux ou non. Lorsque vous serez dans le doute, voici un site pratique qui vous permettra de trancher sur la question.

Should I Use Tables for Layout :
http://www.shouldiusetablesforlayout.com/


Tags: CSS

lundi 17 novembre 2008

Script batch pour rédémarrer IIS

Publié par Infinite Loop, à 19 h 38 0 commentaire

Récemment, j'ai eu à travailler sur un vieux projet ASP et j'ai eu la joie de redécouvrir le serveur IIS (Internet Information Services). En développant localement, j'ai eu à effectuer certaines configurations qui ont nécessité à quelques reprises un redémarrage du serveur web. Plutôt que de procéder à chaque fois à partir du GUI, j'ai préféré utiliser un petit script batch qui me permettait de faire un redémarrage complet plus facilement (un double-click), en terminant tous les services dépendants (à l'aide de net stop). Selon la documentation de Microsoft, cette opération est nécessaire lorsque la configuration modifie le régistre de IIS et le force donc à en faire une relecture.

Dans un fichier texte, inscrire les commandes suivantes et renommer l'extension du fichier .bat.

@echo off
net stop iisadmin /y
net start iisadmin

net start w3svc
net start "FTP Publishing Service"

Deux petites remarques :

  • Selon ce qui a été installé, d'autres services peuvent être ajoutés à la liste
  • Pour que le script puisse fonctionner, on doit avoir le contrôle de son poste (administrateur ou droits associés)


Tags: Coffre à outils

Messages plus récents Messages plus anciens Accueil
S'abonner à : Messages (Atom)
    Suivre @code18 sur Twitter

    Catégories

    • Apache (21)
    • Citations (167)
    • Club Vidéo (24)
    • Coffre à outils (55)
    • CSS (8)
    • Curiosités (117)
    • Design Pattern (2)
    • Drupal (8)
    • Easter Eggs (22)
    • Extensions Firefox (20)
    • GIMP (7)
    • Histoire (21)
    • HTML (32)
    • Humour (57)
    • Intégration (34)
    • iPod (12)
    • JavaScript (110)
    • Jeu de combat (6)
    • Le coin du geek (128)
    • Liens (12)
    • Linux (56)
    • Livres (78)
    • Lois et principes (46)
    • Marché des saveurs (26)
    • Mathématique (18)
    • Mobile (5)
    • Montréal (32)
    • Musique (112)
    • Pancartes et écriteaux (16)
    • Perl (8)
    • Pérou (1)
    • PHP (130)
    • PostgreSQL (44)
    • Programmation (105)
    • Saviez-vous que (55)
    • Sécurité (22)
    • SEO (5)
    • SQL Server (22)
    • Vieilles publicités (6)
    • Virtualisation (8)
    • Voyages (1)
    • Zend Framework (26)

    Divers

    Archives

    • ▼  2015 (6)
      • ▼  août 2015 (1)
        • Citation no.164 sur la tromperie
      • ►  juillet 2015 (1)
      • ►  février 2015 (3)
      • ►  janvier 2015 (1)
    • ►  2014 (8)
      • ►  décembre 2014 (1)
      • ►  novembre 2014 (1)
      • ►  octobre 2014 (1)
      • ►  août 2014 (2)
      • ►  juillet 2014 (2)
      • ►  janvier 2014 (1)
    • ►  2013 (53)
      • ►  décembre 2013 (2)
      • ►  novembre 2013 (1)
      • ►  octobre 2013 (3)
      • ►  septembre 2013 (2)
      • ►  août 2013 (5)
      • ►  juillet 2013 (3)
      • ►  juin 2013 (5)
      • ►  mai 2013 (3)
      • ►  avril 2013 (7)
      • ►  mars 2013 (7)
      • ►  février 2013 (11)
      • ►  janvier 2013 (4)
    • ►  2012 (105)
      • ►  décembre 2012 (8)
      • ►  novembre 2012 (5)
      • ►  octobre 2012 (4)
      • ►  septembre 2012 (1)
      • ►  août 2012 (8)
      • ►  juillet 2012 (7)
      • ►  juin 2012 (7)
      • ►  mai 2012 (10)
      • ►  avril 2012 (13)
      • ►  mars 2012 (15)
      • ►  février 2012 (15)
      • ►  janvier 2012 (12)
    • ►  2011 (146)
      • ►  décembre 2011 (14)
      • ►  novembre 2011 (11)
      • ►  octobre 2011 (12)
      • ►  septembre 2011 (13)
      • ►  août 2011 (15)
      • ►  juillet 2011 (17)
      • ►  juin 2011 (18)
      • ►  mai 2011 (15)
      • ►  avril 2011 (9)
      • ►  mars 2011 (7)
      • ►  février 2011 (3)
      • ►  janvier 2011 (12)
    • ►  2010 (398)
      • ►  décembre 2010 (29)
      • ►  novembre 2010 (28)
      • ►  octobre 2010 (32)
      • ►  septembre 2010 (34)
      • ►  août 2010 (22)
      • ►  juillet 2010 (35)
      • ►  juin 2010 (42)
      • ►  mai 2010 (36)
      • ►  avril 2010 (37)
      • ►  mars 2010 (34)
      • ►  février 2010 (32)
      • ►  janvier 2010 (37)
    • ►  2009 (429)
      • ►  décembre 2009 (32)
      • ►  novembre 2009 (34)
      • ►  octobre 2009 (33)
      • ►  septembre 2009 (37)
      • ►  août 2009 (37)
      • ►  juillet 2009 (39)
      • ►  juin 2009 (38)
      • ►  mai 2009 (37)
      • ►  avril 2009 (35)
      • ►  mars 2009 (36)
      • ►  février 2009 (32)
      • ►  janvier 2009 (39)
    • ►  2008 (84)
      • ►  décembre 2008 (34)
      • ►  novembre 2008 (39)
      • ►  octobre 2008 (11)

    Abonnés

Copyright © All Rights Reserved. Code 18 | Converted into Blogger Templates by Theme Craft