Redirection 301, ou comment déplacer une page sans perdre les liens qui pointent sur l’ancien URL

J'ai rencontré un drôle de problème dernièrement. En fait, ce n'était pas si drôle. J'avais publié un article et je l'avais partagé sur Facebook. Plusieurs personnes l'avaient partagé à leur tour. Selon mes statistiques Google Analytics, environ 200 personnes avaient accédé à cet article en seulement deux jours.

Un matin, j'ai voulu apporter une petite correction au texte de cet article. Je ne sais pas pourquoi, mais une fois la correction enregistrée, l'article ne s'affichait plus. Mon navigateur me donnait une erreur ERR_TOO_MANY_REDIRECTS. Il semblait donc que la page causait une boucle de redirection.

▼Publicité

J'ai effectué plein de tests pour cibler le problème. J'ai remis la page dans son état original, j'ai vidé le cache et les cookies de mon navigateur, j'ai tenté d'afficher la page avec un autre navigateur. Rien à faire, j'avais toujours l'erreur de redirection. Pourtant, les autres pages de mon blogue s'affichaient correctement. Dans mes recherches, j'ai lu que plusieurs internautes avaient reporté des erreurs de redirection sur la page d'accueil d'un site WordPress ou dans le tableau de bord mais sur mon blogue, tout cela fonctionnait correctement. Seul mon article récemment modifié posait problème.

J'ai remarqué que le titre de l'article en question était particulièrement long. Puisque le titre se reflète dans l'URL, j'ai tenté de le raccourcir et BINGO ! L'article s'affichait correctement.

Mon problème n'était pas pour autant réglé puisqu'en changeant l'URL de l'article, tous les liens pointant sur l'ancien URL devenaient morts. J'ai donc décidé d'effectuer une redirection permanente sur mon serveur. À chaque fois qu'un navigateur demanderait l'ancien URL, le serveur lui enverrait un code 301 indiquant que la page a changé d'adresse de façon permanente. Le navigateur serait automatiquement redirigé vers le nouvel URL.

Redirection permanente avec IIS

Puisque mon blogue est hébergé chez SmarterASP sur un serveur IIS, la redirection devait être configurée dans le fichier web.config présent à la racine de mon site Web.

J'ai ajouté, sous <configuration>, une section <location path...> qui indique que j'ajoute une configuration pour une page donnée. J'ai simplement nommé la page avec son ancien nom, sans le http ni le domaine.

Dans cette section, j'ai ajouté une balise <system.webServer> dans laquelle j'ai précisé la redirection. Cette fois, j'ai précisé l'URL complet où le navigateur doit être redirigé.

La nouvelle section a la forme suivante :

Fichier web.config (XML)

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <location path="ancien-nom-de-la-page">

        <system.webServer>

            <httpRedirect enabled="true" destination="http://mondomaine.com/nouveau-nom-de-la-page/" httpResponseStatus="Permanent" />

        </system.webServer>

    </location>

    ...

</configuration>

Redirection permanente avec Apache

Le même exercice aurait pu être fait avec Apache en éditant le fichier .htaccess situé à la racine du site Web.

Il faut d'abord s'assurer que le module de réécriture soit activé (deux premières lignes de l'extrait de code suivant). On peut ensuite configurer la redirection permanente (301) en spécifiant l'ancien nom de la page puis l'URL entier où le navigateur doit être redirigé.

Fichier .htaccess

Options +FollowSymLinks

RewriteEngine on

Redirect 301 /ancien-nom-de-la-page http://mondomaine.com/nouveau-nom-de-la-page/

Merci de partager ! Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestShare on StumbleUponEmail this to someone
Catégories