Url Rewriting

 27/05/2015 |   Admin |  C#


"L'URL-rewriting est une réécriture d'URL. La technique consistant à réécrire sous forme plus simple des URLs complexes. Cette technique est transparente pour l'internaute ainsi que pour les moteurs de recherches. Le but principal est d'obtenir un meilleur référencement."  cf kdj-webdesign.com

Le but de ce tutoriel est de transformer de façon transparente pour l'utilisateur ce genre d'url : 

Au lieu d'avoir ce type d'adresse : http://www.lesite.com/product.aspx?id=1&name?leNomDeMonProduit

on préférera la transformer en : http://www.lesite.com/leNomDeMonProduit.html

A. Première technique

1) Ajouter la DLL nécessaire dans le répertoire Bin de votre site web

ThunderMain.URLRewriter.dll (4,50 kb) ou sur le site du projet "code source" :http://www.codeproject.com/aspnet/URLRewriter.asp

Clique droit sur le site, puis ajouter une référence pointant sur cette DLL.

2) Ajouter ou modifier le fichier Global.asax

Y ajouter cette méthode :

void Application_BeginRequest(object sender, EventArgs e)
{
ThunderMain.URLRewriter.Rewriter.Process();
}

3) Modifier le fichier Web.config

a) Ajouter dans la section "configuration" :
<sectionGroup name="system.web">
<section name="urlrewrites"  
type="ThunderMain.URLRewriter.Rewriter,&#xA; ThunderMain.URLRewriter, Version=1.0.783.30976,&#xA; Culture=neutral, PublicKeyToken=7a95f6f4820c8dc3"/>
</sectionGroup>

 

b) Ajouter dans la section "System.Web" :
<urlrewrites>
<rule>
<url>product_1.html</url>
            <rewrite>product.aspx?id=1</rewrite>
      </rule>
      <rule>
            <url>product_2.html</url>
            <rewrite>article.aspx?id=2</rewrite>
      </rule>
</urlrewrites>

On peut ajouter autant de balises "rule" que l'on désire. On peut également utiliser des patterns comme <url>product_(.*).html</url> etc...

Si cette technique ne marche pas, il se peut que votre serveur web n'interprète pas les pages html comme des pages dynamiques. Il faudra donc modifier la configuration de celui-ci.

B. Deuxième technique

Télécharger la dll à cette adresse : http://urlrewriter.net/

Modifier le web.config comme cela :

Ajouter la section :

<section name="rewriter"
requirePermission="false"                
type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />

Dans le HttpModule :

<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>

Après la le </system.web> :

<rewriter>
    <rewrite url="~/([0-9]+)-(.+).html" to="~/Default.aspx?id=$1&amp;titre=$2" />
  </rewriter>