racine uZine

Dans la même rubrique
Mise en page : manuel de référence
26 mai 2003
16 août 2002
15 juin 2002
11 décembre 2001
7 décembre 2001
2 juin 2001
24 mai 2001
22 mai 2001
20 mai 2001
18 mai 2001
16 mai 2001
14 mai 2001
3 mai 2001
 
mardi 1er mai 2001

Utiliser des URLs personnalisées

par l’équipe de 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.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 : Last)

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.

 
 
l’équipe de SPIP
Imprimer
format impression
l’équipe de SPIP
1er juin 2001
24 mai 2001
16 août 2002
23 septembre 2001
23 septembre 2001
1er juin 2001
 
SPIP
Web indépendant


> 19. Utiliser des URLs personnalisées
24 août 2001, message de iscandar
 

voici un message pour utiliser les url html


Bonjour

Je viens d’essayer les rewrite rules proposées sur le site de
SPIP (http://www.uzine.net/article765.html) pour avoir de
jolie url. Aucun résultat.

En regardant les logs, je me suis apperçu que le moteur
rewrite essayer de matcher "article73.html" avec la
règle "^(.*)/article(.*).html$". Donc cela ne marchait
pas. Je suppose qu’il y a un réglage à faire quelque part.

Finalement, j’ai utilisé les règles suivantes, qui marchent
très bien chez moi :

RewriteEngine On
RewriteRule article(.*).html$ article.php3 ?id_article=$1 [QSA]
RewriteRule rubrique(.*).html$ rubrique.php3 ?id_rubrique=$1 [QSA]
RewriteRule breve(.*).html$ breve.php3 ?id_breve=$1 [QSA]

Quelqu’un a-t-il réussi à utiliser les rewrite rule proposées
dans la doc SPIP ?

Michaël Parienti


spip mailing list
spip@rezo.net
http://listes.rezo.net/mailman/listinfo/spip

Répondre


> 19. Utiliser des URLs personnalisées
20 juillet 2001, message de adb
 

Comment peut-on utiliser les urls personnalisées pour recréer une arborescence statique qui donne des urls signifiante, par répertoires, du type :

http://monsite.com/rubrique/index.html
http://monsite.com/rubrique/sous-rubrique/index.html
http://monsite.com/rubrique/sous-rubrique/article12.html

Voire :

http://monsite.com/2001/07/article12.html

http://monsite.com/dossiers/sujet/article12.html

http://monsite.com/2.22/
(façon Volume/Issue)

Par ailleurs, je ne sais pas si c’est le bon forum pour ça, mais tant que j’y suis :

Quelle serait la méthode pour utiliser SPIP pour un système de publication périodique par "volume.numéro" ?

J’vais pas être très original, mais : "merci".

Répondre
> > 19. Utiliser des URLs personnalisées, adb, 20 juillet 2001

(précision, cf. mon précédent message)

Comment font-ils (cf. urls) sur le monde diplo ?

Répondre