La construction des URL

  Comment SPIP reconnait les URL d’accès

Comme tout système Web ou CMS, SPIP utilise des URL standardisées, qu’il construit selon un modèle précis, avant de chercher à composer la page par le système de squelettes (avec surcharges).

Par ailleurs, ces URL peuvent subir une transformation par le .htaccess en URL Rewriting...

N.B. : Ces URL standardisée serviront ensuite à la construction du squelette à utiliser, et à la compilation de ce squelette pour la clé de l’article (ou occurence d’un autre objet) voulu... mais aussi à la création d’un lien URL d’appel dans une page de squelette !

Article publié le 18 février 2014, et actualisé en décembre 2020


Rappelons que l’URI se décompose entre l’URL proprement dite [1] et l’URN qui définit la page Web particulière voulue (dans ce site)...
Cette URL peut etre simple ou suivie de paramètres : dans ce cas, la chaîne de paramètres est séparée de l’URL -toujours sans espaces- par un ?, les couples de paramètre=valeur étant eux-meme enchaînés par des &..

 Les URL construites par SPIP

D’une façon standard, SPIP peut reconnaitre trois formes d’URN standardisées (après application des règles d’URL-rewriting [2]) pour les appels définis dans les squelettes de la dist-SPIP :
- l’URL de base (correspondant à l’appel de la racine du site) ; le serveur Web va par défaut chercher une page index (ou default) : le mécanisme de SPIP va construire cette page racine à partir de l’appel dans index.php du squelette
 ?page=sommaire (correspondant à #URL_SITE_SPIP).
(c’est donc un cas particulier -implicite- du cas général d’#URL_PAGE ci-dessous ! )
- les URL d’objets éditoriaux (natifs ou nouveaux) : les rubriques, articles, auteurs :
Spip peut afficher automatiquement la page-ecran de présentation complète de l’objet éditorial par une #URL_automatique, sous la forme
?page=objet&id_objet=
ou plus simplement ?objet, pour tout objet publié et de clé identifiant existant valide...
(les habitués des boucles SPIP reconnaitront #URL_RUBRIQUE ou #URL_ARTICLE [3]..)
- les URL de pages dédiées nommées, proposant des listes de titres avec accès aux objets, ou tous autres paramètrages, par une syntaxe ?page=nom_de page&paramètres facultatifs..., par exemple la page obtenue en résultat Rechercher dans un site SPIP,
Et ce dernier mécanisme -beaucoup plus général- permet toutes les extensions de vos squelettes, appelés par la balise #URL_PAGE{nom_squelette}, avec des paramètres complémentaires....

 L’appel du squelette

Les squelettes utilisés servent selon deux approches :
- comme page Web à afficher en réponse à une URL,
- comme lien d’appel URL d’une nouvelle page.

Il faut donc Concevoir la structure de navigation, à organiser selon un diagramme de navigation, puis nommer ces liens, créer les squelettes associés, et insérer les URL d’appel dans ces squelettes...

 Le cas des URL ré-écrites

Les URL natives de SPIP vues ci-dessus ne sont pas tres explicites, ni pour un lecteur humain qui aura du mal à les comprendre et les mémoriser, ni pour un robot d’indexation qui les trouvera non significatives.
Aussi, comme beaucoup d’autre sites, SPIP propose un système de ré-écriture des URL, soit en explicitant un titre, soit en décrivant une formule de ré-écriture encodée dans un plugin ou à l’aide de règles dans .htaccess.


Dans tous les cas vu ci-dessus, le serveur délivre finalement au moteur SPIP une URL :
- de page nommée
- ou éditoriale (simple avec un id de clé) ou multiples,

Vous devriez maintenant pouvoir vous reporter plus facilement à Quel squelette modifier ?, qui explique les noms d’appel standard des pages de SPIP.

Sans rentrer dans le processus interne de compilation de SPIP, vous pouvez maintenant vous pencher sur La composition d’une page : par quel squelette ?.


Merci de nous signaler les coquilles, imprécisions ou erreurs qui figureraient dans cette page.

[1En gros le nom du site, correspondant à un nom d’un serveur dans un domaine ou sous-domaine.

[2Ces règles peuvent être définies par .htaccess ou des modules php internes a SPIP, comme le Format des URL défini par le Couteau Suisse.

[3Vous souvenez-vous que vous pouvez passer explicitement la valeur d’identifiant pour l’objet voulu, par exemple #URL_ARTICLE{3} ?


Liens A2A visibles seulement pour les inscrits.
Liens visibles seulement pour les inscrits.

Article publié le 18 février 2014, et actualisé en décembre 2020 .

Répondre à cet article