Friendly URL

Friendly URL

Dans cet article, je vais vous parler des Friendly URL et vous donner un exemple d’implémentation en Java/J2EE. D’autres technologie permettent facilement de mettre en place ce type de fonctionnalité.

On peut parler de user-friendly ou de search-engine-friendly URL. Pour ma part, une bonne Friendly URL est pour les deux!

Pourquoi des Friendly URL?

Les Friendly URLs apportent les propriétés suivantes à vos URLs:

  • Masquer la technologie utilisé par votre application : c’est très important pour des raisons de sécurité et vous permet facilement de migrer vers une autres technologie si nécessaire en abstrayant vos schéma d’URL de la technologie utilisée.
  • Avoir des URL plus compréhensible par un moteur de recherche, en utilisant des mots clés traduit dans les différents langues de votre sites, ce qui permet un meilleur référencement.
  • Avoit des URLs plus jolie pour l’utilisateur. Les friendly URLs peuvent êtres facilement communiquée à l’utilisateur parce qu’elle sont moins technique et plus compréhensible.
  • Mettre du sens dans les URL : les URLs ont maintenant du sens en elle-même, par l’utilisation de mots clés traduites dans toutes les langues de votre site, les URLs vont avoir du sens pour vos utilisateurs qui vont pouvoir directement comprendre à propos de quoi est votre page juste en regardant son URL. C’est très important quand vous voulez communiquer des URLs à vos utilisateurs (par exemple pour une campagne de promotion).

Anatomie d’une Friendly URL


Voici ce ce à quoi peut ressemble une bonne vielle URL technique :
http://www.domain.fr/site/fr/page.do?id=my_page

J’appèlerais ces URLs, des URls technique. Vous pouvez vouloir les conserver en même temps que les friendly URL pour des raisons de compatibilité ou pour des raisons de maintenances.

Si nous faisont son autopsie, nous avons ce qui suit:
<domain_url>/<web_context>/<langage>/<type_de_page>?id=<identifiant_de_la_page>

La solution de Friendly URL que je présente dans cet article est la suivante :
http://www.domain.fr/site/1/my_page/en/Le-Titre-de-ma-page.html
<domain_url>/<web_context>/<type_de_page>/<identifiant>/<langage>/<titre_traduit>.html

Si vous regardez de plus prêt ce qui a été proposé, vous verrais les fonctionnalités suivantes pour une Friendly URL :

  • Les Friendly URLs contiennent les informations suivantes: type de page, langage, identifiant
  • La fin de la Friendly URL est le titre de la page vers laquelle l’URL pointe traduite dans le langage en court. Cette fin d’URL n’est pas utilisé dans notre mécanisme donc n’as aucune raison d’exister du point de vue technique. Elle finie par.html car elle lie vers une page HTML.

Comment l’implémenter

Redirection

La première partie et la plus importante est la redirection. En effet, vos Friendly URL doivent rediriger vers le nom interne de la page (son action Struts ou son controlleur Spring MVC par exemple). La première chose à faire est de définir une politique de redirection des Friendly URL vers les URL interne.

Je propose ici, d’utiliser un filtre d’URL rewriting, l’UrlRewriteFilter dont vous pouvez trouver les informations ici: http://tuckey.org/urlrewrite/. C’est un filtre J2EE qui se configure en utilisant des regex du style pearl (il est en faite baser sur le mod_rewrite d’apache).En voici un exemple simple de configuration:

<urlrewrite>
    <rule>
        <from>^/1/([^/]+)/([^/]+)/(.*).html(.*)$</from>
        <set name="id">$1</set>
        <to last="true">/contentPage.do</to>
    </rule>
    <rule>
        <from>^/2/([^/]+)/([^/]+)/(.*).html(.*)$</from>
        <set name="id">$1</set>
        <to last="true">/categoryPage.do</to>
    </rule>
</urlrewrite>

On a ici définie deux règles de redirection :

  • Une page de type 1 qui redirige vers l’URL interne contentPage.do
  • Une page de type 2 qui redirige vers l’URL interne categoryPage.do

Bien sure, ceci n’est qu’un exemple qui doit être modifier pour tenir compte de votre propre politique d’utilisation d’URL.

Génération depuis votre admin

Si vous avez une administration pour votre site, n’oubliez pas de le mettre à jour pour qu’il génère à présent vos URLs comme des Friendly URLs.

Génération depuis le site

De la même manière, votre site doit utiliser vos Friendly URL pour lier ses pages les unes entre les autres. La création d’une taglib pour générer vos Friendly URL peut s’avérer profitable.

Les commentaires sont clos.