Utilité
Lorsque l’on crée les squelettes d’un site, il arrive que l’on ait des squelettes ne se rapportant à aucun objet éditorial : « galerie.html », « contact.html », « plan.html » etc.
SPIP permet nativement de définir des urls personnalisées pour les pages se rapportant aux objets éditoriaux (articles, rubriques etc.), ce qui exclut ces types de squelettes.
Pour accéder à ces page, on dispose d’une balise #URL_PAGE
, qui produit par défaut une url du type monsite.com/spip.php?page=toto
.
Voyons comment utiliser le plugin pour personnaliser ces urls.
Utilisation
Avant tout, le fichier fichier .htaccess doit être correctement installé à la racine du site.
Rendez-vous sur la page de configuration du plugin ?exec=configurer_urls_pages
ou dans le menu de configuration « Configurez les URLs ».
1. Renseigner les urls personnalisées
Le plugin répertorie tous les squelettes « actifs » identifiés comme étant des pages. Sont donc exclus de la liste les squelettes des objets éditoriaux (article.html, article-10.html etc.), les noisettes (inc-xxx.html) et les squelettes « techniques » (404.html, sommaire.html etc.).
La recherche est effectuée à la racine des dossiers de squelettes et des plugins actifs de catégorie « squelette ».
Si Zpip ou Zcore est actif, c’est dans les sous-répertoires « content » et « contenu ».
Pour chaque page, vous pouvez donc définir une url personnalisée. Une vérification des doublons est effectuée, en revanche la validité de la chaîne rentrée est de votre ressort (attention aux caractères accentués et consorts).
Après enregistrement des paramètres, la balise #URL_PAGE
pointera vers les nouvelles urls pour chaque page concernée.
2. Vérifier RewriteBase
Si nécessaire renseignez le champ « RewriteBase » tel qu’il est défini dans .htaccess. RewriteBase indique le chemin relatif du site sur le serveur si celui-ci est installé dans un sous-répertoire. Il est nécessaire pour le calcul des urls personnalisées par la balise #URL_PAGE
.
3. Modifier le fichier .htaccess
Pour rendre effectives ces nouvelles urls, il ne reste plus qu’à mettre en place la redirection dans le fichier .htaccess : copiez-y le code indiqué en fin de formulaire (la section « réglages personnalisés » est toute indiquée).
Evolution
Toutes les contributions sont les bienvenues, il s’agit d’un premier jet et de nombreuses améliorations sont possibles.
Discussions par date d’activité
21 discussions
Bonjour et bravo pour avoir pensé à ce plugin,
mais j’ai trouvé une petite coquille qui doit se corriger facilement, visible sur l’image jointe...
ou expliquée en 2 mots :
le code du RewriteRule reprend en 2e argument la partie indiquée par l’administrateur et non la partie détectée automatiquement dans le dossier /squelettes/, soit pour moi :
page détectée : page-orr, Url perso souhaitée : organisation.html
code créé :
RewriteRule ^organisation.html(\.html)?$ spip.php?page=organisation.html [QSA,E=url_propre:$0,L]
code qui fonctionne :
RewriteRule ^organisation.html(\.html)?$ spip.php?page=orr [QSA,E=url_propre:$0,L]
Cordialement
Outch, une belle boulette !.
Merci de l’avoir signalée, c’est corrigé dans la v0.1.2
Il faudrait peut-être que je précise un truc dans l’article : en rentrant « toto » pour une page, les 2 adresses « lesite.com/toto » et « lesite.com/toto.html » fonctionneront.
Donc il n’est pas nécessaire de rajouter « .html » au niveau de la saisie.
Il reste à finaliser en supprimant « page- » dans « spip.php ?page=page-orr » pour avoir l’adresse correcte : « spip.php ?page=orr »
Et ok pour le .html, c’est plus simple
Si le squelette s’appelle "page-orr.html" (je me fie à la capture d’écran), c’est le comportement attendu. Il n’est pas nécessaire de préfixer les squelettes des pages par « page- ».
Et dans certains cas si !!!
je précise que j’utilise ZPIP et dans /squelettes/contenu/ il faut utiliser page-nomdepage.html pour avoir la configuration complète de la page avec l’utilisation du fichier body.html ...
Une solution :
2 zones de code « avec Zpip » en enlevant « page- » et « sans Zpip » avec le contexte complet
Ah ok, je n’avais pas pensé au cas de ZPIP. Je corrigerai ça dans le prochain commit. En ZPIP 2, j’ai un doute, il faut également préfixer les squelettes des pages ?
Pour Zpip 2, je ne sais pas !
Voilà c’est réparé dans la v0.1.3.
Donc effectivement, il faut préfixer pour Z1 mais pas en Z2, d’où ma confusion (j’utilise Z2).
Merci encore pour les retours
Merci,
Juste pour finir, j’ai, par hasard, configuré des majuscules dans mes pages du type :
page-MaPage.html, ceci a été transformé en spip.php ?page=mapage et bien sur cela me redirige vers la 404, à toi de voir si c’est à corriger ou à ma pomme de m’appliquer...
Encore bravo pour la réactivité
Une coquille à corriger !
Voilà, ça devrait rouler avec la v 0.1.4
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |