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.
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.
Envie d'ajouter des fonctionnalités exceptionnelles à votre site WordPress ou WooCommerce? Je suis là pour vous aider.
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
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.
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
Je t’en prie Le Raconteur :)
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. ;)
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).