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.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 le serveur Web qui
héberge votre site, soit dans un fichier .htaccess (ça ne
marche pas toujours), soit dans le fichier de configuration
centrale du serveur si vous y avez accès. Cela utilise,
sous le serveur Apache (le plus utilisé),
ce qu’on appelle
des Rewrite Rules : des règles de réécriture d’adresses Web.
Savoir écrire ces règles n’est pas simple pour les non-programmeurs,
et nous ne pouvons pas vous donner de solutions infaillibles car cela dépend
de votre configuration : cette partie est entièrement
entre vos mains (ou celles de votre hébergeur).
Néanmoins et à titre d’exemple, voici les règles utilisées sur le site d’uZine :
(note si vous écrivez vos propres règles : utilisez toujours
l’option [QSA] car l’adresse peut présenter
des paramètres supplémentaires - comme lorsque
vous appuyez sur le bouton « recalcul », affiché
si vous placez le cookie d’administration ; l’option [L]
signifie, quant à elle, que la réécriture s’arrête là si la règle est appliquée : L
ast)
Il est conseillé de tester la validité
de ces adresses (en les essayant depuis votre
navigateur) dès que vous avez mis en place
la configuration correspondante, car sinon la suite
ne servirait à rien.
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.