Redirections 301

Le plugin Redirection 301 pour SPIP permet de gérer facilement les redirections d’URL et de suivre les erreurs 404 rencontrées sur un site public. Il enregistre les erreurs 404, propose une interface d’administration pour créer des redirections et met en place un système de redirection automatique basé sur un fichier de cache.

Préambule

SPIP gère les urls des objets de façon très fine. Si votre besoin est lié à des objets éditoriaux, je vous invite à lire la documentation de SPIP sur le sujet. Ce plugin n’aborde pas les urls au sens “objet éditorial” de SPIP (cf. la table spip_urls). Ce plugin n’a pas vocation de remplacer la gestion des URLs de SPIP.

Ce plugin est particulièrement utile pour des sites académiques ou gouvernementaux qui n’ont pas un accès direct au fichier .htaccess, leur permettant ainsi de gérer facilement les redirections depuis l’interface privée de SPIP.

Pourquoi utiliser ce plugin ?

Lorsqu’une page demandée n’existe plus, SPIP génère une erreur 404. Ce plugin permet d’identifier ces erreurs et d’y remédier en mettant en place des redirections 301, évitant ainsi aux internautes de tomber sur une page introuvable. Cela est particulièrement utile lorsqu’un site a changé sa structure d’URL, migré son contenu ou souhaite améliorer son référencement en réduisant les erreurs 404.

Installation

Ce plugin s’installe comme tous les plugins par l’intermédiaire du gestionnaire de plugins de SPIP. Merci de vous référer à la page dédiée.

Une fois activé, le plugin commence à enregistrer les erreurs 404 rencontrées sur l’espace publique du site.

Configuration

Un administrateur du site peut ajouter de nouvelles redirections depuis l’espace privé de SPIP :

  • Dans le menu “Publications”, cliquer sur “Redirections 301”
  • Ajouter une nouvelle redirection en cliquant sur “Créer une nouvelle redirection”
  • Vous pourrez saisir (champs obligatoires) :
    • L’ancienne url
    • La nouvelle url souhaitée
  • Sauvegarder votre saisie.

Vous serez redirigé vers la page spécifique à cette nouvelle redirection. Elle aura le statut “En cours de rédaction” par défaut. Il vous suffira de modifier son statut pour que cette redirection soit prise en compte.

Saisie des URLs

Par principe, l’url à saisir est l’url entière sans le nom de domaine. Exemple:

https://ton.nomdedomaine.tld/masuperlongueEtAncienneUrl/que/je/desire/rediriger/

URL à saisir:

masuperlongueEtAncienneUrl/que/je/desire/rediriger/

Choix du type de redirection (Nouveauté v1.1.0)

À partir de la version 1.1.0, il est possible de définir le type de redirection lors de la création d’une redirection. Ce choix permet d’indiquer aux navigateurs et aux moteurs de recherche comment interpréter la redirection.

Les types de redirection disponibles sont :

  • 301 Moved Permanently : Indique que l’URL a été déplacée de façon permanente. Cette redirection est recommandée pour le référencement, car les moteurs de recherche mettront à jour leurs index.
  • 302 Found : Signale une redirection temporaire, sans modification de l’indexation des moteurs de recherche.
  • 303 See Other : Utilisé principalement pour rediriger après une requête POST vers une nouvelle page en GET.
  • 307 Temporary Redirect : Similaire au 302, mais garantit que la méthode HTTP ne change pas.
  • 308 Permanent Redirect : Version stricte du 301, conservant la méthode HTTP d’origine.

Lorsqu’une redirection est créée, l’ancienne URL redirigera vers la nouvelle en utilisant le code de redirection sélectionné. Ce paramètre permet une gestion plus fine des redirections en fonction des besoins spécifiques du site.

Fonctionnement

La page de consultation des redirections

Depuis l’espace privé de SPIP, vous pouvez consulter l’ensemble des redirections enregistrées sur la page /ecrire/?exec=redirections

Les redirections peuvent être supprimées ou désactivées depuis l’interface d’administration.

Utilisation des pipelines de SPIP

Pour identifier les erreurs 404, le plugin utilise des pipelines pour fonctionner efficacement :

  • styliser: pour détecter l’utilisation du squelette 404
  • affichage_entetes_final: intercepter le statut 404 dans $GLOBALS

Enregistrement des erreurs 404

Lorsqu’une erreur 404 est rencontrée sur le site depuis l’espace public, l’url ($_SERVER['REQUEST_URI']) est sauvegardée dans le fichier tmp/erreurs_404.log à chaque fois que cette page est consultée.

En plus de l’URL, deux autres éléments sont enregistrés :
-  $_SERVER['HTTP_REFERER'] s’il est disponible
-  $_SERVER['HTTP_USER_AGENT'] s’il est disponible également

Consultation des erreurs 404

Depuis la page des Redirections 301 /ecrire/?exec=redirections, en bas de page, vous pourrez trouver toutes les urls qui ont amenées à une erreur 404 depuis que le plugin a été activé. Le tableau affichera chaque URL en erreur ainsi que le nombre de fois où elle a été consultée.

Cela permet d’identifier les liens problématiques et d’ajouter facilement des redirections adaptées.

Tâche de fond

Pour éviter de gros problèmes de performances, le plugin exporte toutes les redirections publiées dans un fichier json dans tmp/redirections.json. Le fichier redirections_options.php se chargeant à chaque consultation de page, il consultera ce fichier json pour trouver une correspondance. Cela évite d’interroger la base de données à chaque fois.

Cette tâche est planifiée pour s’exécuter automatiquement chaque heure.

Précautions d’emploi

Je déconseille fortement l’utilisation de ce plugin si vous avez un très grand nombre de redirections à mettre en place. Je recommande l’utilisation du fichier .htaccess dans ce cas pour plus de vélocité.

Discussion

No discussion

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom