L'url Rewriting c'est quoi
L'url rewriting est gérée directement par un serveur web.
Le but de la manipulation est de transformer une url qui a une apparence dynamique en url d'apparence statique.
Par exemple :
L'url suivante :
http://www.monsite.com/article.aspx?id=23
peut être remplacée par une url du type :
http://www.monsite.com/article_23.html
De nombreux sites utilisent cette technique, car elle permet d'obtenir un meilleur référencement de ses pages sur des moteurs de recherche de type Google.
Dans ce domaine le débat fait rage sur Internet et certains vous diront que ce n'est plus vrai aujourd'hui, d'autres vous diront le contraire ...
Force est tout de même de constater, que la plupart des sites qui ressortent dans les premiers résultats de Google, utilisent cette technique.
Etonnant même que Microsoft n'est pas pris la mesure du phénomène Url Rewriting, et n'est pas intégré directement cette technique à son serveur Web. L'enjeu du référencement étant tellement énorme !!!
Le composant que nous vous présentons dans cet article peut être téléchargé à l'url suivante :
http://www.codeproject.com/aspnet/URLRewriter.asp
Installation du composant
Si le répertoire /bin n'existe pas sur votre serveur, créez en un et copiez la Dll dedans.
Dans le fichier global.asax, ajoutez le code comme indiqué ci-dessous à la procédure Application_BequinRequest :
Protected Sub Application_BeginRequest(ByVal sender As Object, ByVal e As System.EventArgs)
ThunderMain.URLRewriter.Rewriter.Process()
End Sub
Dans le fichier Web.config, ajoutez dans la section configuration le code suivant :
<configSections>
<sectionGroup name="system.web">
<section name="urlrewrites" type="ThunderMain.URLRewriter.Rewriter,

ThunderMain.URLRewriter, Version=1.0.783.30976,

Culture=neutral, PublicKeyToken=7a95f6f4820c8dc3"/>
</sectionGroup>
</configSections>
Dans le fichier Web.config encore, ajoutez dans la section <system.web> le code suivant :
<urlrewrites>
<rule>
<url>article_(.*).html</url>
<rewrite>article.aspx?id=$1</rewrite>
</rule>
</urlrewrites>
Dans l'exemple ci-dessus, l'url que vous utiliserez pour vos liens pourra être par exemple article_23.html et correspondra en fait à un appel de la page article.aspx?id=23
Vous pouvez ajouter autant de sections <rule> que vous avez besoin,
- la section <url> correspond à l'url réécrite (visible dans le navigateur)
- la section <rewrite> correspond à l'url qui sera appelée sur le serveur Web
Voici quelques exemples de sections <rule> donnés par le site Code-Project :
<configuration>
<system.web>
<urlrewrites>
<rule>
<url>/urlrewriter/show\.asp</url>
<rewrite>show.aspx</rewrite>
</rule>
<rule>
<url>/urlrewriter/wohs\.asp</url>
<rewrite>show.aspx</rewrite>
</rule>
<rule>
<url>/urlrewriter/show(.*)\.asp</url>
<rewrite>show.aspx?$1</rewrite>
</rule>
<rule>
<url>/urlrewriter/(.*)show\.html</url>
<rewrite>show.aspx?id=$1&cat=2</rewrite>
</rule>
<rule>
<url>/urlrewriter/s/h/o/w/(.*)\.html</url>
<rewrite>/urlrewriter/show.aspx?id=$1</rewrite>
</rule>
</urlrewrites>
</system.web>
</configuration>
Fin de la configuration
Il faut ensuite s'assurer que les urls de types .html (ou autres), seront bien interprétées par le serveur Web comme des pages dynamiques (pouvant exécuter du code ASP.NET) ...
Je vous invite à regarder sur le site Code-project à l'url suivante la section "Finally" : tout est expliqué en image.
Et voila, l'url rewriting est à présent configurée sur votre serveur IIS. Les liens que vous ferez entre vos pages ressembleront maintenant à des liens statiques.