• Pakito.eu : Présentation
Pakito
Le blog d’un étudiant en information et communication, un petit espace pour livrer mes états d’âmes, mes constats, mes découvertes, mes coups de coeur et coups de gueule … L’étalage public de ma vision des choses et de mes goûts, souvent particuliers, qui font de moi ce que je suis.

Tutoriel : Url Rewritting et WAMP

Url Rewritting et WAMP

Quelle belle entrée en matière pour le premier article de la catégorie Geekitude !
Un article destiné aux blogueurs, concepteurs de sites, chef de projets, développeurs … A tout ceux qui ont besoin un jour ou l’autre de réaliser des réécritures d’URL et qui, comme moi, préfèrent tester en local avant de balancer sur le serveur.

Ce tutoriel est donc destiné à configurer WAMP (serveur local : Windows, Apache, MySQL, Php) afin qu’il puisse faire de l’url rewritting, mais c’est un petit peu plus compliqué que ça en a l’air.

J’y ai bien passé une demi heure, donc je partage ma découverte, histoire d’aider ceux qui sont dans la mouise, étant donné que je n’ai rien trouvé sur Google.

Tout d’abord, il vous faut la dernière version de WAMP (2.0 à l’heure où j’écris ces lignes).
A partir de là, cliquez sur l’icône dans la barre des tâches, et rendez vous dans la configuration des modules Apache.
Ils vous faut cocher « Rewrite Module ».

screen-tuto1

A la suite de ça, redémarrez les services (toujours en passant par l’icône de la barre des tâches).
Vous pouvez maintenant passer à la création du fichier .htaccess, que vous placerez dans le répertoire contenant les pages web dont il faut réécrire l’url.
Ce fichier doit obligatoirement contenir les lignes suivantes :

Options +FollowSymlinks
RewriteEngine on

A partir de là, vous pouvez commencer à réécrire vos URLs, mais attention : n’oubliez pas le \ avant la nouvelle extension du fichier, et ne mettez pas de / avant le chemin de la page à réécrire. Voici un exemple :

# Index en .html
RewriteRule ^index\.htm$ index.php [L]

Il y a un \ avant le « .htm », et pas de / avant « index.php ».
La structure des réécritures d’url est toute simple :

  • RewriteRule : c’est la fonction htaccess qui lance la réécriture.
  • la première chaîne de caractères est la règle de réécriture, la façon dont l’url sera réécrite. Elle doit commencer par un ^ et se terminer par un $. Vous pouvez lui passer des paramètres de variables, avec des parenthèses, nous y reviendront dans un instant.
  • la seconde chaîne de caractères est l’url originale : pour que la réécriture fonctionne avec WAMP, il est impératif de ne pas commencer cette chaîne par un /.
    On marque la fin de cette chaîne par un [L].
    A partir de là, vous mettez l’arborescence jusqu’au ficher à réécrire. En cas de variables, on doit aussi les préciser.

Pour réécrire une url dynamique, on utilise certaines expressions :

# Pages avec variable $page :
RewriteRule ^([a-z]*)\.htm$ index.php?page=$1 [L]
RewriteRule ^article-([0-9]+)-([0-9]+)\.htm$ /articles/article.php?id=$1&rubrique=$2 [L]

Comme je le disais, les parenthèses permettent de passer des paramètres, via les RegExp (ou expressions régulières), dans la même syntaxe qu’avec PERL ou PHP.

  • quand je réécris la page index.php, à laquelle je passe la variable d’url ?page=mapage je dois définir comment réécrire cette variable.
    Comme elle contient du texte, j’utilise ([a-z]*) afin de déclarer que je peux utiliser toutes les lettres de l’alphabet, autant de fois que je le veux, pour la première variable, qui sera nommée $1 dans l’url orginiale.
    C’est pourquoi la page originale est appelée index.php?page=$1
  • Quand je réécris une url à plusieurs variables, je les appelle dans l’ordre $1, $2 etc … dans l’url originale.
    Les parenthèses doivent être dans l’ordre de ces variables, dans la réécriture.

Mais ça ne s’arrête pas là !
Pour être full compatible avec WAMP, dont la force réside dans les alias, qui sont très simples à gérer, il faut bien faire attention !
En effet, le dossier contenant les pages (et le .htaccess), l’alias et le nom du fichier alias doivent être identiques.
Si par exemple, je créé un .htaccess pour un site contenu en local dans le répertoire G:\site (oui … j’ai beaucoup de disques durs …), alors je dois créer dans /wamp/alias/ un fichier site.conf, qui lui même contiendra en ligne 1 :

Alias /site  « G:/site »

Et en ligne 16 :

<Directory « G:/site »>

Là encore, après la création ou la modification d’alias, il faut redémarrer les services WAMP.

J’espère que ce tutoriel aidera ceux qui sont désarmés devant les problèmes en cas de mauvaise configuration.
A très bientôt pour d’autres trucs de geeks, mais pas que ! 😉

Vous aimez ? Partagez !

  • Envoyer cet article par email
  • Facebook
  • TwitThis
  • Fuzz
  • Wikio FR
  • Google Bookmarks
  • Digg
  • del.icio.us
  • LinkedIn

Articles similaires

Commentaires & Trackbacks »

Liens vers l'article

Commentaires

  • Nene dit :

    Tu penses sérieusement que j’allais lire ça pour pouvoir le caser dans un diner ????

    Dans les premières ligne au lieu de « peu  » tu as écrit « pedu » mais je te pardonnes..

    Ensuite trop inutile pour ma petite personne ..

    😉

  • Pakito dit :

    @Nene : hop, corrigé ! 🙂

    Et ouais, parler d’URL Rewritting, ou d’.htaccess en général, ça fait toujours classe !
    C’est pas inutile, c’est l’avenir du web sémantique (pour ne pas dire 3.0 …).

  • Nene dit :

    Peut etre mais à moi , n’étant pas une geek extrême like U , ça ne me sert pas et je comprends strictement rien .. :p

Flux RSS des commentaires
TrackBack URL


Laisser un commentaire

WARNING

Your browser does not support JavaScript or has JavaScript disabled!

This will not compromise the possibility to leave a comment, although the automatic insertion of both markup tags and emoticons will not work.

Markup Controls
Emoticons Smile Grin Sad Surprised Shocked Confused Cool Mad Razz Neutral Wink Lol Red Face Cry Evil Twisted Roll Exclaim Question Idea Arrow Mr Green