Le titre n'est pas bien clair, alors un peu d'explication :
Un site assez copieux (3000 articles) est en refonte. Le mot d'ordre est de simplifier les choses et un grand ménage est fait dans les squelettes et certains disparaissent.
Le souci est alors que certaines url figurant dans le contenu des articles deviennent en échec.
Exemple : soit un squelette page-detail.html qui n'existe plus. Tous les liens écrits en dur précédemment par les rédacteurs dans les articles du type [Voir l'article ->mon-domaine.tld/?page=page-detail&id_article=xxx] vont conduire à une erreur 404.
Je voudrais que tous ces liens redirigent vers l'article [Voir l'article ->articlexxx]
Soluce 1 : corriger à la main tous les articles !!!!
Soluce 2 : garder le squelette page-detail et n'y mettre que <INCLURE{fond=content/article,env}>. Ça fonctionne, mais l'url reste une url à la noix
À votre avis, quelle serait la solution pour avoir une redirection "propre" ?
1/ une fonction qui remplace toutes les occurrences de "page=page-detail&id_article=" par "article" ?
2/ une règle dans le htaccess (et dans ce cas-là, ça pourrait s'écrire comment ?)
3/ Autre chose ???
Merci ++++ d'avance de vos bons conseils
Le 15/07/2020 à 19:28, Manu a écrit :
3/ Autre chose ???
Garder le squelette et rediriger dedans :
Avec une redirection permanente, donc 301 à la fin
[(#VAL|sinon_interdire_acces{nouvelleadresse, 301})]
--
RastaPopoulos
Le 15/07/2020 à 20:02, RastaPopoulos a écrit :
Le 15/07/2020 à 19:28, Manu a écrit :
3/ Autre chose ???
Garder le squelette et rediriger dedans :
|sinon_interdire_acces - SPIP
Avec une redirection permanente, donc 301 à la fin
[(#VAL|sinon_interdire_acces{nouvelleadresse, 301})]
Ah, j'arrive sur des 404 ou sur des messages du compilateur qui n'est pas content avec ma syntaxe.
Là où je ne comprends pas comment rédiger, c'est comment glisser l'id_article dans l'écriture "nouvelle adresse"
J'essaye des trucs genre
[(#VAL|sinon_interdire_acces{[(#URL_PAGE{article}|parametre_url{id_article,#ENV{id_article})], 301})]
mais, niet....
Faut rédiger ça comment ?
Le 15/07/2020 à 20:45, Manu a écrit :
Le 15/07/2020 à 20:02, RastaPopoulos a écrit :
Le 15/07/2020 à 19:28, Manu a écrit :
3/ Autre chose ???
Garder le squelette et rediriger dedans :
|sinon_interdire_acces - SPIP
Avec une redirection permanente, donc 301 à la fin
[(#VAL|sinon_interdire_acces{nouvelleadresse, 301})]
Ah, j'arrive sur des 404 ou sur des messages du compilateur qui n'est pas content avec ma syntaxe.
Là où je ne comprends pas comment rédiger, c'est comment glisser l'id_article dans l'écriture "nouvelle adresse"
J'essaye des trucs genre
[(#VAL|sinon_interdire_acces{[(#URL_PAGE{article}|parametre_url{id_article,#ENV{id_article})], 301})]
mais, niet....
Faut rédiger ça comment ?
Je ne m'en sortais pas avec les { et les )], dans une boucle, c'est plus simple
<BOUCLE_redirection(ARTICLES){id_article}>
[(#VAL|sinon_interdire_acces{#URL_ARTICLE, 301})]
</BOUCLE_redirection>
En tout cas, cool (et SPIP, c'est toujours aussi bien ;-))
Merci ++++
Pourquoi une boucle ?
#URL_ARTICLE{#ID_ARTICLE}
--
RastaPopoulos
Bonjour,
Question connexe :
Comment ne pas créer d'url publique sur des objets éditoriaux ?
Par exemple je désire qu'aucune URL de mot-clé de l'espace public n'aboutisse, ou bien aboutisse sur une 404.
(tout en laissant l'usage des mots-clés dans l'espace privé).
Merci
Le 15/07/2020 à 19:28, Manu a écrit :
Le titre n'est pas bien clair, alors un peu d'explication :
Un site assez copieux (3000 articles) est en refonte. Le mot d'ordre est de simplifier les choses et un grand ménage est fait dans les squelettes et certains disparaissent.
Le souci est alors que certaines url figurant dans le contenu des articles deviennent en échec.
--
Stéphane
17 Charente-Maritime
Le 15/07/2020 à 23:14, Stephane Santon a écrit :
Comment ne pas créer d'url publique sur des objets éditoriaux ?
$tables['spip_mots']['page'] = false;
--
RastaPopoulos
Le 15/07/2020 à 22:37, RastaPopoulos a écrit :
Pourquoi une boucle ?
Parce que je ne trouvais pas comment écrire ça (hi, hi, hi)
#URL_ARTICLE{#ID_ARTICLE}
Effectivement, c'est plus simple ;-))
bonjour
Le 15 juil. 2020 à 19:28, Manu <manu@mine-de-rien.fr> a écrit :
Le titre n'est pas bien clair, alors un peu d'explication :
Un site assez copieux (3000 articles) est en refonte. Le mot d'ordre est de simplifier les choses et un grand ménage est fait dans les squelettes et certains disparaissent.
Le souci est alors que certaines url figurant dans le contenu des articles deviennent en échec.
Exemple : soit un squelette page-detail.html qui n'existe plus. Tous les liens écrits en dur précédemment par les rédacteurs dans les articles du type [Voir l'article ->mon-domaine.tld/?page=page-detail&id_article=xxx] vont conduire à une erreur 404.
avec le plugin rechercher/remplacer
remplacer
“mon-domaine.tld/?page=page-detail&id_article”
par “art”
Cladue
Je voudrais que tous ces liens redirigent vers l'article [Voir l'article ->articlexxx]
Soluce 1 : corriger à la main tous les articles !!!!
Soluce 2 : garder le squelette page-detail et n'y mettre que <INCLURE{fond=content/article,env}>. Ça fonctionne, mais l'url reste une url à la noix
À votre avis, quelle serait la solution pour avoir une redirection "propre" ?
1/ une fonction qui remplace toutes les occurrences de "page=page-detail&id_article=" par "article" ?
2/ une règle dans le htaccess (et dans ce cas-là, ça pourrait s'écrire comment ?)
3/ Autre chose ???
Merci ++++ d'avance de vos bons conseils
_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net
Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html
Infos : https://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
Irc : de l'aide à toute heure : http://spip.net/irc
Le 16/07/2020 à 06:59, dlatr a écrit :
avec le plugin rechercher/remplacer
Rechercher remplacer - SPIP-Contrib
Ah, je ne connaissais pas.
Décidément, c'est incroyable toutes ces richesses dont regorge notre petit écureuil...
Merci ;-))
Bonjour,
Le 16/07/2020 à 01:34, RastaPopoulos a écrit :
$tables['spip_mots']['page'] = false;
Euh... à mettre dans mes_options ?
Toujours accès à mes objets mots sur le site public...
Pour préciser, ce n'est pas sur *mon* objet éditorial, mais bien sur les *mots* de Spip.
--
Stéphane
17 Charente-Maritime
Le 16/07/2020 à 08:46, Stephane Santon a écrit :
Euh... à mettre dans mes_options ?
Ça peut mais c'est plus propre dans un plugin.
C'est mieux de connaitre la doc sur les pipelines :
--
RastaPopoulos
Bonjour,
Pas réussi...
-- Déclaré dans paquet.xml :
<pipeline nom="declarer_tables_objets_sql" inclure="bsantonum_pipelines.php" />
-- Fonction dans bsantonum_pipelines.php :
function bsantonum_declarer_tables_objets_sql($tables) {
$tables['spip_mots']['page'] = false;
return $tables;
}
Vidé le cache, désactive et réactivé le plugin, ...
Le 16/07/2020 à 09:50, RastaPopoulos a écrit :
Le 16/07/2020 à 08:46, Stephane Santon a écrit :
Euh... à mettre dans mes_options ?
Ça peut mais c'est plus propre dans un plugin.
C'est mieux de connaitre la doc sur les pipelines :
Qu'est-ce qu'un pipeline ? - Programmer avec SPIP 4
--
Stéphane
17 Charente-Maritime
Il faut être sûr de passer *après* le plugin Mots, sinon forcément c'est sa définition qui reste. Donc nécessiter ou utiliser le plugin dans ton XML.
--
RastaPopoulos
Le 16/07/2020 à 15:47, RastaPopoulos a écrit :
Il faut être sûr de passer *après* le plugin Mots, sinon forcément c'est sa définition qui reste. Donc nécessiter ou utiliser le plugin dans ton XML.
Rajouté dans paquet :
<necessite nom="mots" compatibilite="[2.8.8;]" />
Essayé aussi auparavant avec <utilise>
Mots toujours accessibles...
--
Stéphane
17 Charente-Maritime