Spip

Utiliser des URLs personnalisées

, par Groupe Technique, Spip

Par défaut, les pages générées par SPIP utilisent des adresses relatives ressemblant à article.php3 ?id_article=123, donnant des URLs du type http://www.minirezo.net/article.php3?id_article=123. Ce type de syntaxe, courant chez les sites « dynamiques », n’est cependant pas très joli ni très évocateur. Il y a possibilité d’avoir des adresses plus à votre goût - par exemple article123.html - , et SPIP vous aide en partie dans cette tâche.

Cette fonctionnalité fait appel à la distinction entre deux types d’URLs :

- l’URL apparente d’une page, c’est-à-dire telle qu’elle est tapée et/ou affichée dans la barre d’adresse du navigateur. Par exemple http://www.uzine.net/article765.html. Ce sont ces URLs qu’on cherche à rendre plus « jolies » ou plus « signifiantes » ;

- l’URL réelle de la page, c’est-à-dire l’URL qui est « vue » par SPIP lorsque la page est calculée sur le serveur. Par exemple http://www.uzine.net/article.php3?id_article=765 ; en général, cette URL peut aussi être tapée directement dans le navigateur (vous pouvez vérifier).

Choisir le type d’URLs apparentes

Le fichier inc-urls-dist.php3 à la racine de SPIP, contient la déclaration d’une variable PHP contenant le type d’URLs à utiliser. Par défaut :

$type_urls = "standard";

Cette variable détermine le nom du fichier PHP qui est appelé pour gérer les URLs. Avec la déclaration par défaut ci-dessus, c’est inc-urls-standard.php3. Vous remarquerez qu’il y a aussi un fichier inc-urls-html.php3. Il permet de traiter des adresses du type de celles que nous avons prises comme exemple (« article123.html »). Vous pouvez donc décider d’utiliser plutôt ce fichier que le fichier « standard » en remplaçant la ligne sus-citée par la suivante :

$type_urls = "html";

Si vous voulez plutôt utiliser vos propres adresses (ce pour quoi vous devez savoir programmer en PHP), il est fortement conseillé de partir d’un des fichiers existants et de le recopier sous le nom que vous aurez choisi : inc-urls-XXX.php3.

Voyons maintenant les différents types de modifications à apporter.

Programmer la traduction des adresses apparentes en adresses réelles

Pour que l’adresse article123.html appelle bien en réalité le fichier PHP article.php3 avec comme paramètre id_article=123, il va falloir configurer votre site web dans un fichier .htaccess via ce qu’on appelle des Rewrite Rules : des règles de réécriture d’adresses Web. Le fichier .htaccess doit être placé à la racine de votre site.

RewriteEngine on

# urls spip
# Règles spécifiques à Domaine Public
RewriteRule rubrique([0-9]+)\.html$   /rubrique.php3?id_rubrique=$1 [QSA,L]
RewriteRule article([0-9]+)\.html$    /article.php3?id_article=$1 [QSA,L]
RewriteRule breve([0-9]+)\.html$      /breve.php3?id_breve=$1 [QSA,L]
RewriteRule secteur([0-9]+)\.html$    /secteur.php3?id_rubrique=$1 [QSA,L]
RewriteRule forum([0-9]+)\.html$    /forum.php3?id_rubrique=$1 [QSA,L]
RewriteRule auteur([0-9]+)\.html$    /auteur.php3?id_rubrique=$1 [QSA,L]
RewriteRule document([0-9]+)\.html$    /document.php3?id_rubrique=$1 [QSA,L]

Générer les URLs apparentes dans les pages SPIP

SPIP incorpore une fonctionnalité permettant de générer automatiquement les URLs du type que vous aurez choisi, à l’intérieur même des pages calculées par SPIP. Ainsi, les liens vers des articles seront par exemple générés sous la forme article123.html.

Les fichiers inc-urls-XXX.php3 sont là à cet effet. Si vous avez décidé de créer le vôtre propre, il va falloir programmer vous-mêmes la génération des URLs. Sinon, c’est déjà fait. Vous découvrirez qu’un certain nombre de fonctions PHP sont définies, dans le fichier, sous le nom generer_url_type d’objet (par exemple generer_url_article). Le rôle de ces fonctions devrait vous être évident pour peu que vous compreniez un minimum le PHP. A vous de les modifier à votre guise. A titre d’exemple, vous pouvez vous plonger dans le fichier inc-urls du Monde diplo.

Dans tous les cas, n’oubliez pas d’aller modifier le type choisi à l’intérieur de inc-urls.php3.

Enfin, dans vos squelettes, vérifiez que pour calculer les liens à l’intérieur des boucles, vous utilisez toujours les raccourcis #URL_ARTICLE, #URL_RUBRIQUE, #URL_BREVE, etc. Ce sont en effet eux qui déclenchent l’utilisation des fonctions évoquées ci-dessus, permettant la génération des « bonnes » URLs.

P.-S.

Article de la documentation de SPIP modifié en fonction des paramètres du serveur.

Services

Hébergement - Mails - Listes de diffusions - Pads - Clouds - Outils collaboratifs - Gitlab - ...

Nos Services

Voir les tarifs