blog actif depuis 774 jours.

retours d'expériences, codes sources, réflexions, humeurs... d'un webmaster

 

Mer.

25

Juin

 
L'URL Rewriting (ou réécriture d'url) est la méthode qui consiste à réécrire dynamiquement les urls de son site pour en faire des adresses lisibles, compréhensibles et contenant des termes significatifs.
Ce concept est apparu après l'émergence des sites dynamiques, reconnaissables par le fait qu'ils intègrent dans leurs urls une suite d'arguments plus ou moins nombreux et souvent incompréhensibles.
Ex : http://www.monsite.com/prod.php?id=5465&o=des&cp=5665SH&cat=7....
Cette adresse est illisible pour l'internaute, mais contient tous les arguments nécessaires au serveur pour l'affichage correct de la page.
Le fait que l'internaute ne puisse pas la lire n'a à la rigueur pas trop d'importance. Par contre, pour un référencement optimal sur les moteurs de recherche, il est préférable que l'url contienne des mots clés, qu'elle ait un sens, une valeur sémantique

Donc si on transforme l'url précédente en
http://www.monsite.com/catalogue/consommable/cartouche-encre/epson/
on
obtient une adresse lisible et qui a un sens, qui contient également
les mots clés en rapport avec le contenu de la page. Il reste à
indiquer à votre serveur que cette nouvelle adresse correspond en fait
à l'adresse précédente.

Mise en place sur un serveur apache

La mise en place de l'URL Rewriting sur un serveur apache est simple, elle se fait en 3 étapes :

1 - activer le module rewrite dans votre configuration apache.
Ce module s'appelle rewrite_module et est installé en général avec Apache. La fonction phpinfo() ; vous indiquera les modules installés. Si le module rewrite n'est pas dans la liste, il suffit en général de désactiver la ligne commençant par LoadModule rewrite_module dans le fichier httpd.conf et de redémarrer Apache.
2 - Indiquer à Apache où se trouvent les règles de réécriture
En général, on place ces règles dans le fichier .htaccess., fichiers de configuration d'Apache, permettant de définir des règles pour un répertoire et ses sous-répertoires. Vérifiez donc que la configuration d'Apache vous permet l'utilisation de ce fichier.Vous pouvez également insérer vos règles directement dans la section répertoire (<directory>) de votre fichier httpd.conf
3 - écrire les règles de réécriture
Les modifications du fichier .htaccess sont prises en compte à chaque redémarrage du serveur Apache. Il est donc conseillé de créer un répertoire de test dans lequel vous placerez votre .htaccess pour les tests.

Contenu du fichier .htaccess

Les directives minimum qui doivent être présentes sur votre fichier sont :
RewriteEngine On|off
Active ou désactive le moteur de réécriture
RewriteRule motif substitution [flags]
Définit une règle unique de réécriture de motif en substitution. Les règles sont écrites sous la forme d'expressions rationnelles. Il faut donc être familier avec ce mode d'écriture
Les flags sont des commutateurs permettant d'indiquer comment doit réagir le serveur après la réécriture

Les directives supplémentaires les plus courantes sont :
RewriteBase BaseURL
Définit l'url de base pour les réécritures.
RewriteCond Test Pattern
Définit une condition d'application de la règle. Elle précède la directive RewriteRule Vous pouvez placer plusieurs RewriteCond pour une règle.

Quelques exemples d'utilisation:

Réécriture de produit.php?id=12  en catalogue/imprimante-epson-stylus-c64/12.html
RewriteEngine on
RewriteRule ^catalogue/([a-zA-Z0-9_-]+)/([0-9]+).html$ produit.php?id=$2

La règle de réécriture ci dessus peut être lue comme ceci :
Si l'url demandée
  • - commence (^) par « catalogue/ »
  • - suivi d'un caractères alphanumériques ou des caractères « _ et - » [a-zA-Z0-9_-] le tout au moins une fois (+). Si le motif est reconnu, le résultat est stocké dans la variable $1 (première parenthèse)
  • - suivi de / et d'une série d'au moins un chiffre [0-9]+, le résultat étant stocké dans la variable $2 (deuxième parenthèse)
  • - se terminant ($) par .html (.html)
Alors le serveur retourne le fichier produit.php?id=$2, en remplaçant la variable $2 obtenue précédemment par sa valeur

Interdire l'accès aux images en dehors du site
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.monsite.com/.*$ [NC]
ReWriteRule .*.(gif|png|jpe?g)$ - [F]

Si l'url précédente (%{HTTP_REFERER}) n'est pas vide (!^$)et ne commence pas par http://www.monsite.com/ (le flag [NC] indiquant que la comparaison est insensible à la casse), alors, si l'url demandée :
  • - Commence par n'importe quel chaine de caractère (.*)
  • - Et se termine par l'extension .gif, .png, .jpeg ou .jpg (.(gif|png|jpe?g)$)
Alors interdire l'accès
    Le flag [F] force le serveur à retourner une erreur HTTP 403


Vous pouvez placer des fichiers .htaccess dans plusieurs répertoires et sous répertoires pour y écrire des règles différentes. Les règles du sous répertoire remplacent alors celles du répertoire supérieur. (Si vous voulez ajouter des règles et non pas les remplacer, ajoutez RewriteOptions inherit juste après RewriteEngine on).

De nombreuses docs existent en ligne sur la réécriture d'URLs mais la plus complète est celle du site de la fondation apache : http://httpd.apache.org/docs/2.2/fr/rewrite/

Bookmark and Share

 

Commentaires

Bonjour,

Je cherche de la documentation complète sur l'url rewriting ou la réécriture d'url.
J'aimerai trouver un tutoriel complet afin de mettre en place un système fiable et complet. J'ai essayé diverses techniques sur mon site mais aucune ne remplie toutes les conditions pour un bon référencement google.
Donc si vous connaissez un livre, ou de la doc complète, je vous en serai reconnaissant.

Merci d'avance.

26/08/2009

vous pouvez commencer par ce site : http://www.urlrewriting.fr

26/08/2009

 

Ajouter un commentaire

nom / pseudo :
e-mail :

(Votre e-mail ne sera ni exploité, ni divulgué.)

site (facultatif)
 

Webmaster depuis maintenant plus de 10 ans, j'ai créé ce blog pour publier mes retours d'expérience et parler du Web et du développement Web en général, mais aussi de plein d'autres choses...

romualb.com est sur Facebook
<Juillet 2010 
LunMarMerJeuVenSamDim
   01 02 03 04
05 06 07 08 09 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

 

 

Referencement annuaire gratuit Annuaire carte postale blog,,personnel communiquer gratuit Paperblog : Les meilleurs actualités issues des blogs Classement de sites - Inscrivez le vôtre! Inscrivez-vous maintenant sur Viadeo Web Developement Blogs - BlogCatalog Blog Directory web counter