Espace membres

Bonjour Anonyme

Inscription

Email :
Mot de passe :

Mot de passe oublié ?

Nos scripts

MySpeach

MySpeach est un chat php sans base de donnée, rapide, léger et facile à prendre en main. DEMO

MyPHPUpload

MyPHPUpload est un script d'upload sécurisé écrit en PHP. DEMO

GrapAgenda

Agenda PHP et MySQL avec comptes utilisateurs et administration. DEMO

Livre PHP

Comment utiliser l'url rewriting

Cours / tutoriel écrit le 17-06-2010 par sky
Principes de bases d'URL Rewriting

URL REWRITING
Un article de Dan Hetzel et Olivier Duffez

L'URL Rewriting est une technique utilisée pour optimiser le référencement des sites dynamiques (utilisant des pages dynamiques). Les pages dynamiques sont caractérisées par des URL complexes, comportant en général un point d'interrogation, éventuellement le caractère & ainsi que des noms de variables et des valeurs.

Exemple : article.php_id=12&page=2&rubrique=5
Dans cet exemple, le fichier article.php est utilisé pour afficher un article dont le texte vient d'une base de données. C'est un fichier générique, qui peut afficher n'importe quel article, de n'importe quelle rubrique, page par page. Ici on cherche à afficher la page 2 de l'article numéro 12 qui fait partie de la rubrique 5.

Le problème est que certains moteurs n'indexent pas les pages ayant des URL de ce type. Google par exemple n'indexe en général que les pages ayant au maximum 2 paramètres dans l'URL : il n'indexe donc pas une page comme celle de notre exemple.

Grâce à l'URL Rewriting, Google ainsi que n'importe quel robot va pouvoir indexer les pages dynamiques. L'intérêt est par exemple d'avoir plusieurs milliers de pages de votre site indexées dans Google (le catalogue de tous vos produits, votre forum, etc.).


URL Rewriting : comment ça marche ?
Le principe de l'URL Rewriting est très simple : sur un site qui utilise l'URL Rewriting, on ne peut plus se rendre compte qu'il est basé sur des pages dynamiques. En effet, les URL sont "propres" : elles ne contiennent plus tous les caractères spéciaux comme ? ou &. Personne ne peut savoir qu'il s'agit de pages dynamiques, que ce soit un robot d'indexation ou un internaute. Exemple : les pages de la FAQ Google de ce site (sauf la page principale...).

Le webmaster doit changer la façon dont il écrit les liens, selon des règles qu'il va se fixer lui-même. En reprenant l'exemple ci-dessus, on peut remarquer que les URL pour les pages d'articles ont toutes la même forme. On va donc changer nos scripts PHP et nos liens à l'intérieur du site selon le modèle suivant : article_12_2_5.html

Quand un internaute demande cette page, le serveur va appliquer une règle de réécriture d'URL (décrite dans un fichier .htaccess) et renvoyer la même chose que si l'internaute avait demandé la page article.php_id=12&page=2&rubrique=5.

Remarque : même si l'URL Rewriting est mis en place, on peut toujours accéder aux pages en utilisant l'ancienne URL. Il faut donc veiller à changer tous les liens à l'intérieur de son site pour qu'ils soient tous au nouveau format.



Tester si le mod_rewrite est actif chez votre hébergeur
Avant de se lancer plus loin dans les explications, voici comment tester si le module mod_rewrite est actif chez votre hébergeur. Comme pour toutes manipulations qui peuvent impacter le bon fonctionnement de votre site, nous vous conseillons de faire ces essais en période creuse, en évitant par exemple la période de "full crawl" de Google.

1. Créez un fichier HTML simple, nommez-le "trouve.html".
2. Modifiez le fichier .htaccess en y ajoutant les 3 lignes suivantes. Faites très attention à utiliser la syntaxe précise ou mieux, utilisez le copier/coller :
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^nexistepas.html$ trouve.html [L]  


3. Téléchargez le fichier .htaccess et le fichier trouve.html à la racine de votre site web. Laissez votre client FTP ouvert pour pouvoir enlever le fichier .htaccess au cas où cela ne fonctionne pas.

4. Lancez votre navigateur et entrez l'URL : http://www.votresite.com/nexistepas.html

Et là, deux solutions se présentent :
* Soit votre page test "trouve.html" s'affiche c'est parfait, le module est activé.
* Soit vous avez une erreur 404 ou encore plus probablement une erreur 500 et malheureusement il n'y a pas grand-chose à faire… si ce n'est retirer tout de suite le fichier .htaccess avec le client FTP (vous l'aviez bien laissé ouvert comme suggéré plus haut, non ?).

Exemple d'url rewriting
Voici maintenant quelques exemple pour illustré tout ce blabla
(... en cours désolé, presque fini)


Si vuos n'avez pas compris, ou, vous chercher un page plus explicite, venez sur le forum du site, et on essayera de régler votre problème.

Commentaires

Peyo56 le 07-02-2011

Sinon, si Rewrite ne fonctionne pas :
dans .htaccess :
ErrorDocument 404 /parse.php

dans parse.php, on analyse l'adresse par l'intermediaire de la variable $_SERVER['REQUEST_URI'].

Pseudo
Email
Commentaire

Merci d'écrire le code ici :