URLs par numéro d’article

SPIP propose différents types d’URLs : classiques, par titre, par type d’objet + numéro. Le présent plugin propose de gérer autrement les URLs d’article, en utilisant simplement le numéro de l’article.

Principe de fonctionnement du plugin

Une fois installé, le plugin :
-  utilise le numéro d’article comme URL d’un article. Ainsi l’article 23 aura pour URL : http://monsitespip.tld/23.
-  utilise pour les autres objets le type d’URL défini soit dans l’espace privé, soit via le fichier mes_options.php.

Pourquoi utiliser le numéro d’article en tant qu’URL ?

L’idée de ce type d’URLs m’est venu en constatant ce que proposait la plateforme hypotheses.org.

Chaque article SPIP possède un numéro unique. S’en servir plutôt que le titre comme URL permet :

  • d’assurer l’unicité des URLs, puisque le numéro, contrairement au titre, ne change jamais.
  • de retenir plus facilement l’URL. En effet, en utilisant les URLs propre, qui n’a jamais confondu ceci-est-le-titre-de-l-article avec ceci-est-le-titre-de-larticle ?
  • de pouvoir facilement imprimer l’URL d’un article sur un document papier, où de l’indiquer sur une présentation pour vidéo-projection.

Installation et initialisation

Le plugin s’installe ainsi que n’importe quel plugin. Cependant trois étapes supplémentaires sont requises.

La première étape, et la plus importante, est de modifier le fichier .htaccess livré avec SPIP. En effet, celui-ci redirige par défaut les urls composés uniquement de numéro vers l’URL enregistrée en base correspondante à l’article du numéro. Si nous ne procédons pas à une rectifications, nous aurons alors des boucles infinies de redirection.

Il vous faut donc ouvrir le fichier .htaccess et remplacer

# ping http://site/1234 => article1234

RewriteRule ^([1-9][0-9]*)$     spip.php?action=redirect&type=article&status=301&id=$1 [QSA,L]

par

# url par numéro d'article

RewriteRule ^([1-9][0-9]*)$     spip.php?page=article&id_article=$1 [QSA,L]

La deuxième étape est utile si vous aviez utilisé auparavent des urls propres dépendantes du titre de l’article. Il est nécessaire de faire que toutes les anciennes URLs soient automatiquement redirigées vers les nouvelles. Pour cela :

  • Si ce n’était déjà fait, dans « Configuration »->« Configurer les URLs », cochez la case « Activer la gestion avancée des URLs ».
  • Dans « Publication » -> « Suivi des URLs », choisir « Mettre à jour toutes les URLS » à gauche.

Enfin, la troisième étape consiste à vider le cache de SPIP, via « Maintenance » -> « Vider le cache ». Si vous ne le faites pas, les liens internes seront réactualisés à chaque recalcul normal du cache.

Discussion

3 discussions

  • 1

    Je suis assez d’accord, l’url article par numéro est plus pertinente.
    Le choix de cette fonctionnalité devrait être incluse nativement dans spip !

    Ma question est de savoir si le principe pourrait être étendu à d’autres objets numérotés, rubrique auteur etc.
    Il faudrait alors une abréviation simple type rub1, aut2 mais ça resterait plus simple que la notation en html.
    Merci

    • Je ne suis pas convaincu que des abréviations type rub, aut soit pertinentes. rubrique, auteur est plus parlant et pas tellement plus long.

      A mon avis ce serait possible assez facilement en fouillant le code qui gère les urls objets html.

    Répondre à ce message

  • 1

    Bonjour,

    Merci pour ce plugin bien pratique !

    Petit problème sur SPIP 3.0.20 [22255] le numéro d’article en tant qu’URL ne fonctionne pas lorsqu’on sélectionne URLs Arborescentes (/article/titre) dans Configurer les URLs...

    Alors que ça fonctionne très bien lorsqu’on sélectionne URLs Libres (Titre-de-l-article Rubrique).

    Est-ce normal ?
    Merci

    • tout dépend ce qu’on appelle « normal ». En l’état du code, c’était normal que cela se comporte ainsi. Mais il n’était pas normal que le code propose cela. Bref c’était un bug.

      La version 1.2.0, qui sera bientôt disponible en zip, résoudra le problème. Il faudra bien penser à passer par la page de config des plugins après la mise à jour.

    Répondre à ce message

  • 1

    Le plugin http://contrib.spip.net/Microblog contient un mécanisme comparable pour rendre accessible les articles sous http://tld.com/1234 . Est-ce qu’il y a compatibilité ?

    • la question n’a pas de sens.

      Dans microblog, il s’agit à chaque fois d’une redirection, commme l’explique le tutoriel sur le .htaccess.

      C’est du reste cette redirection qui a été activée par défaut dans SPIP et que le présent plugin demande de supprimer.

    Répondre à ce message

Ajouter un commentaire

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom