Il y a quelques semaines, j’ai décidé de changer la structure des permaliens (ou permalinks) sous WordPress.

Je me suis rendu compte que finalement, il y avait très peu d’intérêt à garder la date de création de l’article dans l’URL étant donné qu’elle est présente dans chaque article, cela permet de raccourcir les URLs et mes articles sont plutôt timeless.

Cela se fait en 2 étapes, en 5 minutes top chrono.

Etape 1 : changer la structure des permaliens WordPress

C’est tout simple, il suffit de se rendre dans Settings > Permalinks et de sélectionner Post name:

Depuis WordPress 3.3, choisir l’option /%postname%/ ne pose plus de problème de performance. C’était le cas auparavant et l’option n’était pas disponible.

Validez les changements.

Etape 2 : rediriger les anciennes URLs vers les nouvelles

Il nous reste maintenant à rediriger tous les anciens permalinks vers les nouveaux. Pour cela, il suffit d’éditer le fichier .htaccess qui se trouve à la racine de votre site.

J’utilisais jusqu’ici la structure “Day and name” (), il faut donc retirer tous les nombres de la date (/Année/Mois/Jour/), comme ceci :

# Changement des permaliens de skyminds.net - by Matt.
# https://www.skyminds.net/2000/12/21/southland-saison-4/ devient
# https://www.skyminds.net/southland-saison-4/
RewriteEngine On
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ https://www.skyminds.net/$4

Et voilà, toutes vos anciennes et longues URLs sont automatiquement redirigées vers les nouvelles et courtes, de manière totalement transparente pour vos visiteurs.

Analyse à court-terme

Niveau performance, je n’ai pas noté de ralentissement. Par contre toutes vos anciennes URLs sont redirigées avec des redirections 301 (redirections permanentes) ce qui affole un peu Google, Bing et compagnie pendant quelques jours. Ne vous inquiétez pas, cela se règle automatiquement, le temps que leur cache se mette à jour.

A lire :  Résoudre le blocage de l'iPhone/iPod : le mode DFU

Edit : à long terme, il est utile d’ éditer les liens de la base de données WordPress pour refléter le changement de structure des permaliens.

Si vous avez trouvé une faute d’orthographe, veuillez nous en informer en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée.

Vous souhaitez réaliser un nouveau projet WordPress ou WooCommerce, ou ajouter de nouvelles fonctionnalités? Ou améliorer les performances de votre site?

Parlons de votre projet »

Articles en rapport:

6 Comments

  1. Avatar

    salut Matt,
    j’ai suivi ton tuto pour mon site Duflot pour changer la structure de mes permaliens qui étaient aussi avec la date.
    Par contre est ce qu’il faut absolument éditer les liens dans la base de données? parce que je t’avouerais que j’ai un peu la flemme. ;)

    • Matt

      Salut Julie,

      Si tu as mis la redirection .htaccess, ce n’est pas vital – c’est juste que tu forces le serveur à faire une redirection vers la bonne page à chaque fois qu’une ancienne page est demandée.

      Sur un petit blog, ça passe. Si tu as 5000+ visites par jour, cela risque de ralentir les choses et il vaudra mieux faire la manipulation SQL pour éditer les liens (qui ne prend que quelques minutes).

  2. Avatar

    Yes, c’est bon ! Grâce à vos conseils, j’ai réussi la redirection 301.

    Et en plus, j’ai changé les liens dans toute la base à l’aide de Search Regex.

    Merci

    Le raconteur

  3. Avatar

    Un très bon article… Cependant, ton astuce avec le htaccess fonnctionne en supprimant les dates mais de mon côté je souhaite passer d’un simple /%postname%/ à du /%postname%-%post_id%/, tu aurais le code pour cela ? Je demande ça car je m’emmêle souvent les pinceaux avec le htaccess.

    A bientôt

    • Matt

      Salut Crunch,

      WordPress redirigera tes anciennes URLs vers les nouvelles automatiquement.

      J’ai ajouté les règles htaccess parce que je préfère que ce soit Apache qui gère cela plutôt que WordPress. Dans ton cas par contre, comme le post_id n’était pas présent dans l’ancienne structure, tu ne peux pas le passer en argument à Apache.

Écrire un commentaire

Spelling error report

The following text will be sent to our editors: