Fil d'ariane
Ligams » Publications » Référencement » Réecriture d'URL asp.net et IIS
Réecriture d'URL asp.net et IIS
La réecriture d'URL n'est pas seulement possible avec apache et un fichier .htaccess. La technologie Microsoft ASP.net offre également cette fonctionnalité, qui est facile à mettre en place. Un article en fait la description détaillée sur le site MSDN de Microsoft, nous en ferons ici la synthèse pour mettre en place rapidement la réecriture d'URL sur un site internet dynamique.
Le fichier web.config : activer la réecriture
Tout d'abord, il faut indiquer au serveur que l'on souhaite utiliser la réecriture d'URL, lorsque l'on crée un projet Visual Studio, on a par défaut 2 entrées commentées dans le fichier Web.config :
<!-- <httpModules> <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" /> </httpModules> --> <!-- <httpHandlers> <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" /> </httpHandlers> -->
Décommentez tout d'abord httpModules pour lancer le module de réecriture, ou httpHandlers pour utiliser le gestionnaire de réecriture. Si vous êtes plus habitués au serveur Apache qu'à IIS, ces opérations sont à peu près analogues à :
puis
Les règles de réecritures
Les règles de réecriture sont également placées dans le fichier web.config :
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>expression recherchée</LookFor>
<SendTo>chaine de remplacement</SendTo>
</RewriterRule>
</Rules>
<!-- //...-->
</RewriterConfig>
A chaque règle de réecriture correspond un noeud RewriterRule, l'expression à rechercher dans l'URL est défini dans le sous-noeud LookFor, la page qui sera affichée sera dans le sous-noeud SendTo. Les règles sont évaluées de haut en bas, et le processus s'arrête à la première correspondance (cela correspond au flag [L] d'Apache )
A noter qu'il est possible en utilisant la classe ModuleRewriter de personnaliser les comportements de la réecriture, ce qui est particulièrement appréciable.
Exemple ancien/nouveau :
Le classique :
<RewriterRule>
<LookFor>~/nouveau\.aspx</LookFor>
<SendTo>~/ancien.aspx</SendTo>
</RewriterRule>
Exemple avec une URL dynamique :
L'utilisation d'expression régulière est bien entendu possible :
<RewriterRule>
<LookFor>~/(\S*)\.aspx</LookFor>
<SendTo>~/page.aspx?id=$1</SendTo>
</RewriterRule>
Cela redirigera "page.aspx?id=ma_page" vers "ma_page.aspx".
Intérêts de la réecriture d'URL
Intérêt de la réecriture d'URL pour le référencement naturel
D'après les dires, la réécriture d'URL ne serait plus d'actualité pour un bon référencement naturel.
Je ne suis pas totalement d'accord : certes les moteurs de recherches indexent très bien les pages web comprenant des variables, mais ils attribuent une importance non négligeable au texte des URLs, la réecriture permet d'éliminer tous les textes inutiles (exemple : nom de variable pas représentatif, extension...).
Intérêt de la réecriture d'URL pour l'ergonomie
De plus, il arrive que les utilisateurs avertis surfent directement en modifiant l'URL dans leur barre d'adresse, la suggestion du navigateur permet à l'utilisateur de plus facilement identifier la page qu'il souhaite trouver.
Conclusion
La réecriture d'URL n'est pas une exclusivité d'Apache, c'est parfaitement possible de l'implémenter sur un site .NET. C'est même plus simple, et plus facilement personnalisable à mon sens.
Encore aujourd'hui, il y a toujours un intérêt à réecrire ses URLs, en terme de référencement et d'ergonomie.
Commentaires
Votez pour cet article
Vote: 4,00/5
(Nombre de votant(s) : 1)



