Moteur de réécriture - Rewrite engine
Un moteur de réécriture est un composant logiciel qui effectue la réécriture sur les Uniform Resource Locators , en modifiant leur apparence. Cette modification est appelée réécriture d'URL . C'est un moyen de mettre en œuvre le mappage ou le routage d' URL au sein d'une application Web . Le moteur est généralement un composant d'un serveur Web ou d'une infrastructure d'application Web . Les URL réécrites (parfois appelées URL courtes , jolies ou fantaisistes , conviviales pour les moteurs de recherche - URL SEF ou slugs ) sont utilisées pour fournir des liens plus courts et plus pertinents vers des pages Web. La technique ajoute une couche d' abstraction entre les fichiers utilisés pour générer une page Web et l'URL qui est présentée au monde extérieur.
Usage
Les sites Web à contenu dynamique peuvent utiliser des URL qui génèrent des pages à partir du serveur en utilisant des paramètres de chaîne de requête . Celles-ci sont souvent réécrites pour ressembler à des URL de pages statiques sur un site avec une hiérarchie de sous - répertoires . Par exemple, l'URL d'une page wiki peut être :
http://example.com/w/index.php?title=Page_title
mais peut être réécrit comme :
http://example.com/wiki/Page_title
Un blog peut avoir une URL qui code les dates de chaque entrée :
http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=19
Il peut être modifié comme ceci :
http://www.example.com/Blog/2006/12/19/
qui permet également à l'utilisateur de modifier l'URL pour voir toutes les publications disponibles en décembre, simplement en supprimant le texte encodant le jour '19', comme s'il naviguait "en haut" d'un répertoire :
http://www.example.com/Blog/2006/12/
Un site peut transmettre des termes spécialisés de l'URL à son moteur de recherche en tant que terme de recherche. Cela permettrait aux utilisateurs de rechercher directement à partir de leur navigateur. Par exemple, l'URL saisie dans la barre d' adresse du navigateur :
http://example.com/search term
Sera codé par le navigateur avant qu'il ne fasse la requête HTTP . Le serveur pourrait réécrire ceci en :
http://example.com/search.php?q=search%20term
Avantages et inconvénients
Il y a plusieurs avantages à utiliser la réécriture d'URL :
- Les liens sont "plus propres" et plus descriptifs, améliorant ainsi leur "convivialité" à la fois pour les utilisateurs et les moteurs de recherche .
- Ils empêchent les " inline linking " indésirables , qui peuvent gaspiller de la bande passante .
- Le site peut continuer à utiliser les mêmes URL même si la technologie sous-jacente utilisée pour les servir est modifiée (par exemple, passage à un nouveau moteur de blogs ).
Il peut cependant y avoir aussi des inconvénients ; si un utilisateur souhaite modifier une URL pour récupérer de nouvelles données, la réécriture d'URL peut entraver la construction de requêtes personnalisées en raison du manque de variables nommées. Par exemple, il peut être difficile de déterminer la date à partir du format suivant :
http://www.example.com/Blog/06/04/02/
Dans ce cas, la chaîne de requête d'origine était plus utile, car les variables de requête indiquaient le mois et le jour :
http://www.example.com/Blog/Posts.php?Year=06&Month=04&Day=02
Cadres Web
De nombreux frameworks Web incluent la réécriture d'URL, soit directement, soit via des modules d'extension.
- Apache HTTP Server dispose d'une réécriture d'URL fournie par le module mod_rewrite.
- URL Rewrite est disponible en tant qu'extension de Microsoft IIS .
- Ruby on Rails a une réécriture d'URL intégrée via Routes.
- Jakarta Servlet a une réécriture d'URL extensible via OCPsoft URLRewriteFilter et Tuckey UrlRewriteFilter.
- Jakarta Server Faces a simplifié la réécriture d'URL via PrettyFaces : URLRewriteFilter.
- Django utilise un système basé sur des expressions régulières . Il ne s'agit pas strictement d'une réécriture d'URL puisqu'il n'y a pas de script dans lequel « réécrire », ni même une structure de répertoires ; mais il offre toute la flexibilité de la réécriture d'URL.
- Java Stripes Framework a des fonctionnalités intégrées depuis la version 1.5.
- De nombreux frameworks Perl, tels que Mojolicious et Catalyst , ont cette fonctionnalité.
- CodeIgniter a une réécriture d'URL fournie.
- lighttpd a un module mod_rewrite.
- nginx a un module de réécriture. Par exemple, une génération de page multi-lien multi-variable à partir d'un URI comme /f101,n61,o56,d/ifconfig est possible, où plusieurs parties individuelles comme f101 sont développées à l'aide d' expressions régulières en variables pour signifier FreeBSD 10.1- LIBÉRER et ainsi de suite.
- Le serveur HTTP Hiawatha dispose d'un URL Toolkit qui prend en charge la réécriture d'URL.
- Le serveur HTTP Cherokee prend en charge les expressions régulières de réécriture et de redirection d'URL.
Du point de vue du développement logiciel , la réécriture d'URL peut aider à la modularisation du code et au flux de contrôle , ce qui en fait une fonctionnalité utile des frameworks Web modernes.
Voir également
- Contrôleur de livraison d'applications
- Gestionnaire de trafic aiScaler
- .htaccess
- Serveur HTTP Apache
- Négociation de contenu
- HTTP
- Serveur d'informations Internet
- Lien permanent
- Serveur Web Zeus
Remarques
Liens externes
- Apache mod_rewrite
- Apache mod_rewrite Liste complète des variables et valeurs CGI pour la construction de réécritures.