Blogueur

« François Viens »

François Viens
15 juin 2010

Inefficace si bien utilisé

Mon côté hypocondriaque me dirige parfois vers de la sur-analyse de l’état de salubrité dans les endroits que je visite… aucune crainte de m’inviter chez vous, ce comportement est particulièrement plus prononcé dans les endroits publics où la multiplication des visiteurs alimente ma réflexion… je n’en fais pas encore officiellement de crise, mais mon hamster travaille très très fort et si ce n’était pas du Purell qui a été après l’Internet une véritable révolution dans mon cas (et pas la peine de commenter que le Purell ne tue que X% de ci ou ça, je sais déjà mais il faut pouvoir s’appuyer sur des trucs dans la vie, même si parfois c’est futile)

Où veux tu en venir?

Ce matin, j’arrive tôt au travail, je profite de l’occasion pour me prendre un petit café et un bagel au Tim en face du bureau. La jeune dame bien intentionnée (ou bedon elle me draguait… ish…) décide de quitter son poste au grille pain pour venir me servir à la caisse. Gants de plastique dans les mains, avant de toucher à la caisse, elle a la brillante idée de retirer un gant, le temps de manipuler la caisse et l’argent… mon hamster commence à analyser, bien que satisfait du premier geste de cette dame. Une fois payé, elle remet son gant et met mon bagel dans le grille pain. Étant une personne très efficace, attendre après le bagel n’était pas possible et c’est à partir de là que ça se gâte, je surveille encore… manipulation de :

  • la machine à café
  • la carafe
  • boîte de filtres
  • poubelle mais en surface
  • porte d’armoire

… tout ça avec les mêmes gants, de retour sur mon bagel, application du fromage à la crème, emballage, merci et bonne journée Monsieur.

Le bagel était délicieux MAIS, si cette dame avait bien utilisé les gants?

Et bien, si elle avait bien utilisé les gants, elle aurait été très inefficace… elle aurait dû les retirer, faire les différentes manipulations de la cafetière et autre, se prendre une nouvelle paire de gants, réussir à les remettre en place sans trop les scrapper (ça c’est un autre sujet, mais la sur manipulation du gant pour arriver à le mettre rend souvent le gant useless au niveau hygiène) et revenir dans la chaîne de travail… le résultat, mon bagel aurait été froid…

Si les gants sont utilisés sans trop de réflexion, autant continuer à faire la job main nue… qu’est-ce que le gant change anyway si la personne qui les porte fait de la caisse, se gratte la face, se dépogne les bobettes, touche à tout autour d’elle… RIEN.

Bref, je suis peut-être un peu freak avec toute cette réflexion, mais si vous avez un restaurant et que votre équipe utilise des gants, autant vérifier qu’ils les utilisent correctement car autrement, c’est une dépense inutile, ce n’est pas plus propre, ça pollue et les clients comme moi, ne se laisseront pas prendre par le simple port du gant, et les autres, ils s’en foutent de toute façon…

Bon lunch!





François Viens
4 mai 2010

En fin de crise économique, du bon vin cheap!

Je suis un amateur de vin… pas que j’en connais beaucoup sur le sujet mais j’aime simplement en consommer! Bien que je sais apprécier une bonne bouteille dispendieuse, je préfère encore plusieurs bouteilles à prix moindre. Dans un tel contexte, 3 bouteilles à 20$ c’est mieux qu’une bouteille à 60$… Pendant longtemps je n’étais pas prêt à changer cette proportion pour passer à 6 bouteilles à 10$ mais certaines choses ont changé dans ma vie, dont l’arrivée d’un bébé et l’obligation (très difficile!) de boire la bouteille à moi seul… plus souvent qu’autrement j’en prends la moitié et conserve l’autre moitié pour quelques jours plus tard… et c’est dommage faire ça avec un bon vin, car il n’est plus aussi bon le jour suivant…

Voilà pourquoi je me suis mis à essayer des vins « cheap » et dans quelques cas, j’ai été agréablement surpris, alors voici les résultats de mes tests, en ordre de prix, les meilleurs à mon avis sont tout de même à la fin de la liste ;-)

Nero d’Avola Giacondi Sicilia i.g.t. 2008

Pas dans ma pastille de goût du tout, j’ai tout de même réussi à apprécier ce vin à 8,30$.Pour ma part je le réserve pour un plat de pâte… L’utilisation de la carafe aide beaucoup! La première gorgée n’est pas représentative de l’expérience globale. Ne poussez pas l’audace à servir à de la visite ou à donner en cadeau, parfait pour un soir de semaine, seul!

Pour plus d’information ou pour acheter ce vin sur le site de la SAQ : http://www.saq.com/webapp/wcs/stores/servlet/ProductDisplay?catalogId=10001&storeId=10001&productId=101633&langId=-2&parent_category_rn=11749&top_category=

Ruffino Chianti 2008

Encore un autre vin à pâte! Celui-ci peut se conserver jusqu’en 2012 mais entre vous et moi, un vin à 9,95$ autant le consommer que le collectionner… Même un peu gênant de le collectionner en fait… L’utilisation de la carafe aide beaucoup! Vous pouvez le servir avec de la visite et cacher la bouteille si vous faite affaire avec des amateurs de vin! Ça reste un vin assez connu et l’appellation est également assez connue. Encore là, risqué d’offrir en cadeau, selon le cercle d’amis que vous fréquentez…

Pour plus d’information ou pour acheter ce vin sur le site de la SAQ : http://www.saq.com/webapp/wcs/stores/servlet/ProductDisplay?catalogId=10001&storeId=10001&productId=55281&langId=-2&parent_category_rn=11749&top_category=

Jackson-Triggs Esprit Sélection Spéciale

En plus d’encourager l’économie locale (Canada), il s’agit d’un vin très bien après quelques gorgées pour seulement 11,20$ . Je prends ce vin à l’occasion avec du poulet, pas vraiment avec de la viande rouge… Je n’utilise pas la carafe, sûrement pour des raisons de respect envers notre vin canadien (au dessus de la carafe voyons!). Étant un produit local, bien que peu dispendieux, il n’est pas trop gênant de l’offrir en cadeau ou bien de le servir à votre visite, s’ils n’aiment pas, vous aurez toujours l’argument que c’est un produit local. Peut être servi à des amis étrangers, ne croyant pas trop à notre production de vin, ils seront surpris!

Pour plus d’information ou pour acheter ce vin sur le site de la SAQ : http://www.saq.com/webapp/wcs/stores/servlet/ProductDisplay?catalogId=10001&storeId=10001&productId=97301&langId=-2&parent_category_rn=11749&top_category=

Borsao Campo de Borja 2008

Un bon petit vin d’Espagne à 11,90$ . Je l’apprécie particulièrement avec des poitrines de poulet à la dijonnaise. Pas très connu, il s’offre bien autant en cadeau qu’à la visite. Jamais mis en carafe, je devrais essayer pour voir la différence.

Pour plus d’information ou pour acheter ce vin sur le site de la SAQ : http://www.saq.com/webapp/wcs/stores/servlet/ProductDisplay?catalogId=10001&storeId=10001&productId=89579&langId=-2&parent_category_rn=11749&top_category=

Shiraz Two Oceans Western Cape 2009

La on commence à jaser et entrer dans la crème du vin cheap… À 11,95$ c’est un des meilleurs rapports qualité-prix que je connaisse à la SAQ… De plus en plus populaire, plusieurs connaissent son bas prix ce qui peut rendre risqué de l’offrir en cadeau. Je n’ai par contre aucune honte à l’offrir à la visite avec un bon repas. Pas besoin de carafe pour ce vin, quoi que ça pourrait l’améliorer (une carafe c’est chiant à laver), il est excellent avec la viande rouge, fondue et raclette.

Pour plus d’information ou pour acheter ce vin sur le site de la SAQ : http://www.saq.com/webapp/wcs/stores/servlet/ProductDisplay?catalogId=10001&storeId=10001&productId=95521&langId=-2&parent_category_rn=11749&top_category=

Cabernet-Sauvignon Jacob’s Creek South Eastern Australia 2007

À mon avis, le meilleur rapport qualité-prix que j’ai eu la chance de goûter à ce jour à la SAQ. À la limite du cheap (moins de 15$) à 14,90$, un vin passe partout mais que j’apprécie encore une fois avec la viande rouge, fondue et raclette. Pour les amateurs de vin avec du tonus, sans pour autant être ultrafortuné, ce vin est pour vous, une petite gâterie de 15$ une fois par semaine, vous le méritez bien. Dans mes goûts à moi, en compétition directe avec plusieurs vins de près ou supérieurs à 20$.

Pour plus d’information ou pour acheter ce vin sur le site de la SAQ : http://www.saq.com/webapp/wcs/stores/servlet/ProductDisplay?catalogId=10001&storeId=10001&productId=91023&langId=-2&parent_category_rn=&top_category=

Il s’agit de mes goûts personnels. À mon humble avis, aucune raison d’acheter un Relais des Oliviers à l’épicerie autre que des raisons d’heures d’ouverture de la SAQ en connaissant une liste comme celle-ci.

Bonne bouffe!…





François Viens
1 avril 2010

Un retour en arrière s’impose en développement Web

MAJ : Billet rédigé le 1er avril 2010… Tentez de saisir l’ironie dans les propos!

On ne peut pas se cacher le fait que le Web a beaucoup changé au cours des dernières années. Pour le mieux vous direz? Je n’en suis pas sûr… À force de travailler dans le Web, notre vision s’éloigne de la vision des utilisateurs, les vrais québécois à moitié techno… Ce qui avec le temps est devenu la norme de qualité est alors critiquable si elle ne correspond pas aux goûts des utilisateurs… et c’est pour eux que nous faisons tout ça après tout…

Voici donc une liste d’anciennes pratiques Web à reconsidérer sérieusement dans vos prochaines réalisations :

1 – Utilisation abondante des GIF animés

Voilà une pratique qui est de plus en plus rare alors qu’elle répondait à un besoin ultra intéressant : attirer l’attention. Il est vrai que ce n’est pas ce qu’il y a de mieux au niveau esthétique mais croyez vous que le concessionnaire d’autos trouve la banderole soufflée, les franges bleu blanc rouge ou encore les drapeaux et ballons jolies? Peut-être que oui, peut-être que non, mais ça marche, ça attire l’attention… Comment résister à des images comme celles-ci?

2 – Splash Page Français English

Voulez-vous vraiment courir le risque d’afficher de l’anglais pour un visiteur français ou l’inverse?? Ne prenez pas chance, c’est tellement simple de régler cette question avec la fameuse « splash page »… et si vous avez la chance, profitez de l’occasion pour insérer un clip musical, c’est l’endroit tout indiqué!

3 – Utilisation des Frames

Après l’utilisation des GIF animés et de musique de toutes sortes, il est certain que votre site Web peut sembler un peu lourd à charger. Ne vous en faites pas, les « Frames » sont là pour ça! Ça permet de ne charger que le contenu nouveau d’une page à l’autre sans perturber l’emplacement de vos amis graphiques hyperactifs.

4 – Thématique des pages

Chaque page comporte un message différent. Comment  véhiculer un message différent si le « layout » reste le même? Ça me semble incohérent… Les nouveaux sites Web sont trop standardisés, plus de sentiment de personnalisation… Changez les couleurs, les polices et n’ayez pas peur de changer le menu de place ou de tout simplement le retirer, ça prend généralement beaucoup trop de place de toute façon…

5 – Largeur et hauteur fixes

Il est beaucoup plus simple et plus jolie de fixer une largeur et une hauteur et de jouer avec le contenu pour s’assurer que ça ne dépasse pas trop… Après tout, c’est de cette façon que sont pensées les nombreuses publicités papier et s’il y a encore autant de publicités imprimées c’est que c’est la méthode la plus efficace! Faire votre site Web compatible en 8.5 X 11 vous permettra également d’utiliser le même designer que vous utilisez pour votre impression. Si vous avez un designer Web, formez le à utiliser FrontPage ou autre outil, il sera ainsi de nouveau rentable.

6 – Pas trop de texte SVP

Tout le monde le sait, personne ne lit sur Internet… donc ça ne sert à rien de mettre trop de texte. De plus, tant qu’à réduire la quantité de texte, en partie pour que ça rentre dans votre largeur et hauteur fixe, autant transformer ce texte en image. Ce genre de pratique permet l’utilisation des différentes polices non Web et facilite également la mise à jour du site Web car vous n’aurez qu’à éditer vos JPG avec un éditeur d’image… fini le cassage de tête avec les « balises ».

7 – Utilisation de talbeaux (table)

Tout le monde est parti sur un tripe de ne plus utiliser de tableaux… bon bon bon… Au niveau programmation, qu’est-ce qui est le plus facile de travailler avec : un fichier word ou un fichier Excel sous CSV? C’est clair que c’est le fichier Excel… La structure en tableaux ne peut donc pas être si mauvaise que ça pour structurer les données. L’autre avantage de l’utilisation des tableaux est l’affichage parfaite dans les différents navigateurs si on s’assure d’avoir un premier TR définissant toutes les colonnes mais à 1 pixel de hauteur et en insérant des images blank.gif aux bons endroits, on est en business!  Si ça marche pas bien à cause d’un mélange dans les rowspans et les colspans, montrez le concept de base à vos enfants, ça va les occuper pendant de longues heures!

8 – Retour au forum

Depuis quelques années on ne voit presque plus de nouveaux forums… mais des milliers de nouveaux blogues… Il s’agit d’un très mauvais choix technologique… Le blogue vous oblige à créer du contenu sur une base régulière. Le forum en contrepartie vous permet de déléguer à 100% la création de contenu par une couple de pas de vie qui vont venir chialer sur la plateforme… pensez-y!

9 – Noms de domaine

Ne prenez pas de chance, réservez le plus de noms de domaine possible… Pensez à toutes les façons étranges d’écrire le nom de votre entreprise et réserver chaque version du nom de domaine dans les 10 ou 12 extensions disponibles… Ainsi, vous êtes certains d’accrocher votre visiteur. N’oubliez pas également de vous assurer que le site Web fonctionne peu importe le nom de domaine qu’on utilise. Tant qu’à parler des noms de domaine, choisissez le forfait d’hébergement le plus « cheap » même s’il est aux îles « moukmouk »… Après tout un site Web est une dépense considérable et tout votre argent doit être réservé pour avoir le plus grand nombre de noms de domaine possible alors autant diminuer le coût de l’hébergement.

10 – Faites le dont vous même

Pourquoi engager des similis experts? Une page Web, c’est pas tellement compliqué à faire et il existe une multitude d’outils pour vous aider! Ne gaspillez pas votre temps et votre argent, télécharger Front Page et amusez-vous! Il est vrai qu’au niveau SEO (être dans les premiers dans Google) ce ne sera pas parfait… mais bon… qui veut être sur Google alors qu’il est si simple d’être dans les pages jaunes? Et si jamais vous désirez améliorer votre sort sur Google, simplement mettre des mots clés à la tonne écrits en blanc sur fond blanc…

Bien entendu, il aurait été facile de continuer pendant longtemps cette liste de nouvelles vieilles bonnes pratiques :

  • whatever les aveugles
  • DHTML is so king
  • maximiser les meta keyword
  • le CSS : trop compliqué
  • Flash est votre ami
  • tout le monde est sur IE anyway
  • doubler votre contenu avec des pages pour impression
  • title « sans titre » c’est plus simple
  • évitez de payer l’hébergement en étant dans un sous répertoire du site de votre webmestre
  • faites vos formulaires en PDF
  • maximiser son utilisation des popups
  • pas plus que 500$ s.v.p.

Bon développement Web!





François Viens
31 mars 2010

Y’était temps comme ils disent!

Voilà déjà un bon moment que QuiboWeb a concentré ses activités en autre sur le développement de sites Web basés sur la plateforme Open Source WordPress et pendant tout ce temps, combien de fois j’ai vécu la gêne d’avoir notre propre blogue basé sur une solution maison datant de 2006! Nous y voilà, nous aussi, mise à niveau des plus agréable pour vous écrire ici, sur OnFaitDuWeb.com, à partir du tableau de bord combien sympathique offert par WordPress!

Les auteurs sont les mêmes, les sujets ou les « pas de sujets » aussi, mais la façon de naviguer, commenter, Twitter etc est de combien bonifiée! Et plusieurs se réjouiront également de la fonction de « brouillon » qui permet de ne pas perdre son article si on met trop temps pour l’écrire (session timeout!) !

Nous lancerons également au cours des prochaines semaines ou mois (qui sait ce qui peut arriver dans le merveilleux monde du Web), notre projet le plus intéressant basé sur WordPress et c’est avec empressement qu’on vous annoncera la nouvelle ici, et ailleurs!

Merci de nous lire et de laisser votre trace en commentant les différentes interventions. C’est toujours plaisant d’échanger même si parfois les avis sont divergents.





François Viens
23 février 2010

Quelques bases du URL Rewrite

Pour des questions SEO, il est intéressant de maîtriser certaines techniques de réécriture d’adresses sous Apache avec les fichiers .htaccess. Si l’adresse ne change pas dans la barre d’adresse du navigateur, on parle de redirection interne. Si l’adresse change, on parle de redirection externe, souvent des redirections retournant le code HTTP 301 indiquant que la ressource est déménagée à la nouvelle adresse de façon permanente. Les redirections internes sont les plus complexes à comprendre car intangibles, elles permettent de créer une structure complètement virtuelle pour un site Web qui lui serait généré à partir du même fichier PHP. WordPress en est un bon exemple!

Il faut garder en tête que le mod_rewrite est appelé chaque fois qu’une demande HTTP est faite sur un fichier. Il faut donc être concis et s’assurer des limites de notre fichier .htaccess pour éviter des comportements incompréhensibles. Le plus complexe dans le URL Rewriting c’est les expressions régulières. Plusieurs règles de base peuvent être mises en place sans trop de connaissance en expressions régulières mais la science des URL Rewriting prend toute son ampleur lorsqu’on y ajoute un peu de « pattern matching »!

Le texte ci-dessous représente principalement une traduction des passages les plus intéressants des 2 sources citées à la fin de l’article.

Contenu de base du fichier .htaccess

Un fichier .htaccess de réécriture d’adresse de base devrait contenir ces lignes. La ligne Options +FollowSymlinks n’est que très rarement utile car elle permet de suivre les liens symboliques à l’intérieur des bornes définies par le <Directory> de votre serveur Apache. En contrepartie, chez certains hébergeurs, la présence de cette ligne donnera une erreur interne de serveur (500). La solution la plus simple est de laisser la ligne si le serveur ne retourne pas d’erreur, s’assurant que d’éventuels besoins seront comblés automatiquement ou de commenter la ligne si le serveur retourne une erreur. Pour faire un commentaire dans un fichier .htaccess, ajoutez simplement un # en début de ligne.

Options +FollowSymLinks
 
RewriteEngine On
RewriteBase /

Dans le cas où votre projet est dans un sous-répertoire, il faut ajuster le RewriteBase en conséquence pour que les règles commencent à l’intérieur de ce répertoire.

Flags

Mais qu’est-ce que c’est ces lettres entre crochets []? C’est des « flags » indiquant certaines instructions supplémentaires au moteur de réécriture d’adresse d’Apache. En voici une liste des principaux « flags » :

  • R=code : Indique une redirection. Le code est le code HTTP que vous désirez retourner. Souvent le code 301 est utilisé pour indiquer que l’adresse demandée n’existe plus et a été remplacée par la nouvelle adresse. Si aucun code n’est spécifié, le code 302 sera retourné, celui-ci indiquant qu’il s’agit d’une redirection temporaire.
  • L : Indique que si cette règle est respectée, ne pas tenter d’autres règles, arrêter immédiatement avec celle-ci. Très utile pour permettre de mettre les règles les plus précises en début de fichier allant vers les moins précises et arrêter le traitement aussitôt qu’une règle correspond à l’adresse demandée.
  • NC : Fait en sorte que la règle ne doive pas nécessairement respecter la case (majuscule, minuscule)
  • QSA : Permet de conserver les paramètres d’une adresse et d’en ajouter d’autres. Par exemple, avec la règle suivante RewriteRule fr/nouvelles.html$ nouvelle.php?lang=fr , si l’URL demandé est fr/nouvelles.html?page=2 , nouvelle.php n’aura pas accès à la valeur du paramètre page, seulement la valeur de lang. Si au contraire on ajoute [QSA], les paramètres lang et page seront disponibles dans le fichier PHP.
  • S=num : Permet de sauter les « num » prochaines règles si la règle en cours est respectée. Permet de faire une sorte de IF ELSE bouetteux… la dernière règle du premier S étant S=X, X étant le nombre de régles à sauter dans la portion « else ».
        (if)
        RewriteRule … [S=2]
           RewriteRule …
           RewriteRule … [S=1]
        (else)
           RewriteRule …
        (endif)
        Lecture normale des règles suivantes…    
  • NE : Permet d’éviter d’escaper des caractères spéciaux lors d’une redirection ce qui arrive automatiquement sinon. Ainsi, RewriteRule /test/(.*) /page?q=repertoire%3d$1 [R,NE] redirigera ‘/test/bobo’ sur l’URL suivante ‘/page?q=repertoire=bobo’.
  • N : Permet de relancer le traitement des règles de réécriture, mais pas avec l’URL de départ mais plutôt avec l’URL transformé par les premiers passages… À éviter, risque de boucles infinies.
  • F : Permet de forcer le retour d’une erreur HTTP 403 : Forbidden sur une page ou un ensemble de page respectant une RewriteConds
  • B : Apache traduit les caractères « url escapés » en caractère standard. La règle RewriteRule ^(.*)$ index.php?show=$1 réécrira /C++ vers index.php?show=/C++ mais va également réécrire /C%2b%2b vers index.php?show=/C++ car les + auront été « dé-escapés »! L’utilisation du flags B vous assurera que /C%2b%2b deviendra index.php?show=/C%2b%2b et /C++ restera index.php?show=/C++.
  • C : Permet de lier une règle avec la règle suivante et ainsi de suite si le C est présent sur les règles suivantes. Si la règle est respectée, le traitement continue de façon normal et le flag est ignoré. Si la règle n’est pas respectée, toutes les règles liées à celle-ci ne seront pas considérées.
  • CO=NAME:VAL:DOMAIN[:LIFETIME[:PATH[:SECURE[:HTTPONLY]]]]’ : Permet de créer un cookie! Il s’agit d’une fonctionnalité intéressante mais rarement utilisée… Le prochain développeur à travailler sur votre projet risque de chercher l’emplacement de la création du cookie longtemps dans le code! NAME est le nom du cookie, VAL sa valeur, DOMAIN le domaine « .test.com » sur lequel le cookie doit être actif, LIFETIME la durée de vie en minute, PATH le répertoire où le cookie est effectif, SECURE « true » ou « 1″ fait en sorte que le cookie est effectif seulement sous https, HTTPONLY « true » ou « 1″ fait en sorte que le cookie n’est pas manipulable par du javascript.
  • NON COUVERT ICI : DPI, E=VAR:VAL, G, H=Content Handler, NS, P, PT, T

Forcer la présence des www

Bien que les www. ne sont pas du tout nécessaires pour qu’une page Web fonctionne, les internautes néophytes sont tout de même habitués à leur présence. Le plus important à retenir est que www. agit de façon similaire à un sous-domaine (site.domain.com). D’avoir du contenu accessible avec et sans les www. peut causer un problème de dupplication de contenu ce qui n’est pas idéal pour les moteurs de recherche. Une façon d’éviter est de regarder combien de pages sont présentes dans les index des moteurs de recherche avec et sans les www. (site:domain.com). S’il y a plus de pages avec www., forcez la présence du www., sinon, retirez les www. . Dans les 2 cas, faisant des redirections retournant le code HTTP 301 (déplacement permanent), les adresses fautives seront éventuellement remplacées dans les index des moteurs de recherche.

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

Retirer les www

Il est parfois préférable de se départir des www pour rendre les adresses plus courtes. En tant que tel, les www. n’ajoute aucune valeur. Si un site n’est pas déjà bien référencé dans les moteurs de recherche, il peut être intéressant de forcer le retrait des www.

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

Forcer la présence du www sans « hardcoder » le domaine

Il peut parfois arriver que plusieurs domaines soient effectifs sur un même compte d’hébergement, bien que c’est en gérale une mauvaise pratique que le même contenu puisse être accessible à partir de différents noms de domaine. Dans un tel cas, plutôt que d’inscrire le nom de domaine dans la règle forçant la présence du www., une règle générale peut être mise en place :

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.[a-z-0-9]+.[a-z]{2,6} [NC]
RewriteCond %{HTTP_HOST} ([a-z-]+.[a-z0-9]{2,6})$     [NC]
RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]

Arrêter des loops de redirections

Bien que non recommandé, il peut arriver que nos règles créées des boucles infinies de redirections sur le serveur. Partant du principe que chaque appel HTTP fait une requête au fichier .htaccess, vous pouvez altérer ce fichier avec le code suivant pour arrêter la boucle.

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]

Déjouer la cache des navigateurs

Trop souvent on doit dire « Avez vous vidé votre cache? »… Une façon de régler ce problème est d’utiliser une règle de réécriture d’adresse permettant de conserver toujours le même nom de fichier pour les feuilles de styles et les fichiers javascript sur le disque mais d’ajouter un numéro de version dans le nom de fichier dans le HTML. Ainsi /skin/js/script-VERSION.js pointe vers /skin/js/script.js et /skin/css/styles-VERSION.css vers /skin/css/styles.css

RewriteRule ^skin/(js|css)/([a-z]+)-([0-9]+).(js|css)$ /skin/$1/$2.$4 [L]

Retirer le Query_String

Il est très fréquent de voir des sites pour lesquels page.html et page.html?param=bobo affiche le même contenu… Ceci peut causer des problèmes de contenu duppliquer et nuire au référencement de votre site Web. Une façon de régler le problème est de se départir du QUERY_STRING et il suffit simplement d’ajouter un ? à la fin de votre règle.

RewriteRule bobo.html$ bobo.php? [R=301,L]

Documents sauvegardés en base de données

Vous pouvez simuler la présence d’un document PDF ou Word ou autres dans un répertoire donné et utiliser cette règle pour appeler un script en charge de servir le document en provenance de la base de données /getdoc.php

RewriteRule ^docs/(.+)$  /getdoc.php?file=$1.pdf [L,NC,QSA]

Afficher par défaut dans la langue du visiteur (navigateur)

Il arrive très souvent qu’on doive afficher le contenu d’un site multilangue dans la langue du navigateur du visiteur par défaut. Une façon d’y parvenir est d’utiliser le « flag » ENV permettant d’assigner une variable d’environnement.

RewriteCond %{HTTP:Accept-Language} ^.*(es|fr|en).*$ [NC]
RewriteRule ^(.*)$ - [env=prefer-language:%1]

On est fermé! Permettre de bloquer l’accès à un fichier à une période donnée de la journée.

Concept à utiliser que si nécessaire… Rendre indisponible du contenu de votre site à une certaine heure pourrait faire en sorte que ce contenu soit retiré des index des moteurs de recherche si ceux ci visitent votre site à cette heure.

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# S'il est 17h, on ferme
RewriteCond %{TIME_HOUR} ^17$
RewriteRule ^.*$ - [F,L]

Changer les underscore (_) par des tirets (-)

Pour des raisons SEO, les tirets sont plus efficaces que les underscores car ils permettent de séparer une chaîne de caractères en plusieurs mots, plutôt que d’être considéré comme un seul mot. Pour cette raison, l’utilisation de underscrore dans les URL est généralement à éviter. La régle suivante fonctionne pour des URL présentant jusqu’à 5 underscores…

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
 
RewriteRule !.(html|php)$ - [S=4] # on skip les 4 règles suivantes si ce n'est pas un appel à du HTML ou PHP
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_(.*)$ $1-$2-$3 [E=uscor:Yes]
RewriteRule ^([^_]*)_(.*)$ $1-$2 [E=uscor:Yes]
 
RewriteCond %{ENV:uscor} ^Yes$
RewriteRule (.*) http://domain.com/$1 [R=301,L]

Réduire le vol de bande passante

Il n’est pas rare de voir des sites faire référence directement à une image, une animation flash ou autre mais de façon intégrée à leur contenu. Le résultat est que vous fournissez la bande passante pour le média transmis.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?domain.com/.*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$ /dev/null [R=302,L]

Redirection pour une adresse IP précise

Il arrive souvent qu’on doive ajouter une règle dans un fichier .htaccess et il peut être tentant de la faire directement sur le serveur… Bien entendu, dans certains cas, une erreur de manipulation peut causer des problèmes! C’est pourquoi il peut être intéressant de tester une règle en spécifiant notre adresse IP dans une condition préalable… Ainsi, seulement les requêtes en provenance de cette adresse IP seront considérées.

RewriteCond %{REMOTE_ADDR} ^1.1.1.1$
RewriteRule ^$ http://www.domain.com/testderedirectionjustepourmoi.html? [L]

Contrôle du comportement du HTTPS

Je trouve pratique qu’une section sécurisée d’un site ne soit pas simplement sur https://www.lesite.com… Par exemple, dans le cas de paiement en ligne pour une boutique, l’utilisation d’un sous-domaine secure.lesite.com, lui étant disponible seulement sous HTTPS me paraît un scénario beaucoup plus sympathique… Les règles suivantes permettent d’avoir un contrôle sur une zone bien précise pour le HTTPS et s’assurent que cette zone n’est disponible qu’avec HTTPS

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} secure.lesite.com(.*)$
RewriteRule ^(.*)$ https://secure.lesite.com/$1 [R=301,L]

RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} !^secure.lesite.com
RewriteRule ^(.*)$ https://secure.lesite.com/$1 [R=301,L]

Page 404

Le fichier .htaccess peut également servir à définir une page d’erreur 404 par défaut.

ErrorDocument 404 404.html

Sources