SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

Télécharger

Utiliser des URLs personnalisées

Mai 2001 — mis à jour le : Mai 2011

Toutes les versions de cet article :


Après l’installation, les pages générées par SPIP utilisent des adresses relatives ressemblant à spip.php?article765, donnant des URLs du type http://www.spip.net/spip.php?article765.

Il y a possibilité d’avoir des adresses plus à votre goût — par exemple article123.html ou Titre-de-l-article.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.spip.net/fr_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.spip.net/spip.php?article765 ; 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

Depuis SPIP 2.1, le choix est faisable via l’interface privé. Allez dans Configuration du site->fonction avancées, et choisissez le type d’URL souhaité.

Avant SPIP 2.1 il faut suivre la procédure inscrite en dessous.

Dans le fichier config/mes_options.php [1] (à créer le cas échéant), vous pouvez déclarer une variable PHP contenant le type d’URLs à utiliser. En l’absence de ce réglage, SPIP utilisera :

$type_urls = "page";

La variable $type_urls 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 le premier urls/page.php trouvé dans SPIP_PATH.

Vous remarquerez que SPIP propose aussi les fichiers urls/standard.php, urls/html.php, urls/propres.php, urls/propres-qs.php et urls/propres2.php dans le répertoire ecrire/

-  Le fichier urls/html.php permet de traiter des adresses du type (« article123.html »). Vous pouvez décider d’utiliser les « URLs “html” » en mettant dans config/mes_options.php la ligne :
$type_urls = "html";

-  Le fichier urls/propres.php permet de traiter des adresses du type (« Titre-de-l-article »). Il faut alors ajouter :
$type_urls = "propres";

-  Le fichier urls/propres2.php est une variation du précédent, qui donne des adresses du type (« Titre-de-l-article.html »). Il faut alors ajouter :
$type_urls = "propres2";

-  Le fichier urls/propres-qs.php est une variation du précédent, qui donne des adresses du type (« ./?Titre-de-l-article »). Il faut alors ajouter :
$type_urls = "propres-qs";. Ce dernier est à utiliser si votre hébergeur ne vous permet pas d’utiliser le module de réecriture d’urls d’apache (cf. mod_rewrite)

-  Enfin, le fichier urls/standard.php permet aux nostalgiques des versions précédentes de spip de donner des adresses du type (« article.php3?id_article=765 »). Il faut alors ajouter :
$type_urls = "standard";

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 : urls/XXX.php. Il est par exemple très aisé de modifier la fonction _generer_url_propre() dans urls/propres.php pour obtenir des variations très intéressantes ; si vous faites cela, merci de partager vos modifications sur le site SPIP Contrib’.

Programmer la traduction des adresses apparentes en adresses réelles

Pour que l’adresse article123.html appelle bien en réalité le fichier PHP spip.php 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, depuis SPIP 1.8 est fourni un fichier htaccess.txt à titre d’exemple, qui fonctionne sur la plupart des hébergeurs avec les types d’URLs cités précédemment (« standard », « html », « propres » et « propres2 »). Pour l’activer il faut le recopier à la racine du site sous le nom .htaccess. Il est fortement conseillé de l’ouvrir au préalable pour vérifier quelques aspects de configuration.

Vous devrez ensuite tester la validité de ces adresses, en appelant la page « Voir en ligne » sur un article, un auteur, une brève, une rubrique, etc.

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

Afin d’afficher partout les URLs du type choisi, utilisez dans vos squelettes les balises #URL_ARTICLE, #URL_RUBRIQUE, #URL_BREVE, etc.

Transition d’un type d’URLs à l’autre

Depuis SPIP 1.8, tout est prévu pour que la transition d’un type d’adresses à l’autre se fasse en douceur : installez le fichier htaccess.txt, et vous pouvez ensuite librement basculer des adresses « standard » aux adresses « propres2 », « propres » ou « html », et vice-versa, sans jamais provoquer d’erreur 404 pour les visiteurs (ou les moteurs de recherche) qui auraient mémorisé les anciennes adresses.

Dernier détail pour faciliter la transition, si vous choisissez les URLs propres ou propres2, les visites des pages portant les anciennes adresses (standard ou html) sont redirigées automatiquement vers les nouvelles adresses.

Notes

[1Remarque : les versions précédentes de SPIP incluaient le fichier inc-urls.php3 à la racine du site s’il était présent ; cette méthode est encore valable mais est considérée comme obsolète...


Voir le squelette de cette page Site réalisé avec SPIP | Espace de traduction | Espace privé