Dotclear

Vous n'êtes pas identifié(e).

Annonce

#1 2020-09-23 15:00:49

aloxe
Membre
Inscription : 2014-12-22

Changement de lien /Titre vers /post/Titre suite à une mise à jour

Je viens de faire une migration de dotclear de la version 2.12.1 vers la 2.17.1 (je sais je suis lent) Et tout va bien sauf les liens générés par {{tpl:EntryURL}} qui auparavant étaient de la forme "example.com/Titre-entree" et sont maintenant "example.com/post/Titre-entree".

Ma config est un peu spéciale:
- Méthode de lecture de l'URL en QUERY et l'url du site est sans le "/?" mais une rêgle apache se charge d'envoyer la bonne query à partir de l'URL en "example.com/Titre-entree".
- Le Format d'URL des nouveaux billets est "Titre"

Je n'ai pas trouvé la cause de ce changement ni dans les notes de release ni dans le code donc me voilà bien dépourvu.

La question bonus est peut-être connaissez-vous un moyen de régler ça avec une modification de prepend.php ou l'ajout d'une constante dans le fichier de config ou dans les templates ?

Hors ligne

#2 2020-09-23 16:03:25

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Changement de lien /Titre vers /post/Titre suite à une mise à jour

Bonjour

Peux-tu poster ici la règle de réécriture qui te permet de supprimer /post ?

En ligne

#3 2020-09-23 21:31:57

aloxe
Membre
Inscription : 2014-12-22

Re : Changement de lien /Titre vers /post/Titre suite à une mise à jour

(...)
        RewriteCond %{QUERY_STRING}  (.*)q=(.*)$
        RewriteRule ^/(tag|category|archive|page)(.*)$  /index.php?$1$2&q=%2  [L]
        RewriteRule ^/(tag|category|archive|feed|envoyer|trackback|page|sitemap)(.*)  /index.php?$1$2  [L]
(...)
        RewriteRule ^/(.*) /index.php?post/$1 [L]

et aussi ceci dans le fichier index.php

if ($_SERVER['QUERY_STRING']=="post/index.html") { $_SERVER['QUERY_STRING']=""; }                                                

mais bon, les redirections fonctionnent c'est la génération des liens qui pose problème.

Dernière modification par aloxe (2020-09-24 18:39:31)

Hors ligne

#4 2020-09-25 13:48:53

aloxe
Membre
Inscription : 2014-12-22

Re : Changement de lien /Titre vers /post/Titre suite à une mise à jour

Après avoir installé un doctlear 2.12 j'ai constaté que les liens générés contenait déjà la type d'entrée. Il y a donc une modification supplémentaire que j'avais faite dans me souvenir.


Je l'ai retrouvée dans

class dcUrlHandlers

getURLFor()

retourne

                // necessaire pour cause de rewrite dans apache.conf
                $url = str_replace ("post/", "", $url);
                return $url;

je retire la chaine "/post" de  $url.

Du coup je me demande s'il n'y aurait pas quelque chose de plus élégant pour ce genre de changement.

Hors ligne

#5 2020-09-25 16:30:55

Philippe
Stagiaire
Lieu : Toulon
Inscription : 2004-06-13
Site Web

Re : Changement de lien /Titre vers /post/Titre suite à une mise à jour

Il y avait un plugin du nom de FreeUrls par adjaya, mais je ne le retrouve plus sur son site ni sur Dotaddict. Peut-être pourrais-tu essayer de le contacter ?

Je ne pense pas que la gestion des urls ait changé entre les versions 2.12 et 2.17...

En ligne

#6 2020-09-26 05:54:52

Franck
Footer de merde
Lieu : Paris
Inscription : 2004-11-09
Site Web

Re : Changement de lien /Titre vers /post/Titre suite à une mise à jour

Je confirme que la gestion d'URL n'a pas changé entre les versions 2.12 et 2.17, je pense que je m'en serais aperçu :-)

Il y a peut-être moyen en redéfinissant le schéma d'URL pour les billets, avec un plugin idoine du genre :

$core->url->unregister('post');
$core->url->register('post', 'post', '^(.+)$', ['dcUrlHandlers', 'post']);

Attention pas testé, et je ne suis pas certain qu'il n'y ait pas d'effet de bord !


Dotclear addicted since 2004

Hors ligne

#7 2020-09-28 15:25:56

adjaya
Membre
Lieu : Provence - Luberon
Inscription : 2006-09-05
Site Web

Re : Changement de lien /Titre vers /post/Titre suite à une mise à jour

Philippe a écrit :

Il y avait un plugin du nom de FreeUrls par adjaya, mais je ne le retrouve plus sur son site ni sur Dotaddict. Peut-être pourrais-tu essayer de le contacter ?

Le lien de la dernière version du plugin freeUrls est sur la page
https://forum.dotclear.org/viewtopic.ph … 44#p343344
du topic dédié en #93

http://aiguebrun.adjaya.info/public/plu … -0.0.3.zip


Photo, Art et Création Numérique : http://benoit-grelier.photo7.fr/

Hors ligne

#8 2020-10-04 20:55:03

aloxe
Membre
Inscription : 2014-12-22

Re : Changement de lien /Titre vers /post/Titre suite à une mise à jour

Merci pour ces suggestions, je viens d''installer freeUrls et cela ne propose que la redirection des pages ''lang    pages    gal    galitem    category    tag'' mais pas des posts. C'est ce qui m'intéressait. Dommage…

Hors ligne

#9 2020-10-04 21:31:43

aloxe
Membre
Inscription : 2014-12-22

Re : Changement de lien /Titre vers /post/Titre suite à une mise à jour

Franck a écrit :

Je confirme que la gestion d'URL n'a pas changé entre les versions 2.12 et 2.17, je pense que je m'en serais aperçu :-)

Il y a peut-être moyen en redéfinissant le schéma d'URL pour les billets, avec un plugin idoine du genre :

$core->url->unregister('post');
$core->url->register('post', 'post', '^(.+)$', ['dcUrlHandlers', 'post']);

Attention pas testé, et je ne suis pas certain qu'il n'y ait pas d'effet de bord !

En fait ce serait ceci qu'il faudrait faire:

$core->url->register('post', '', '^post/(.+)$', ['', 'post']);

parce que les valeurs sont **$type, $url, $representation, $handler** et que c'est l'url doit être générée de la forme monblog.org/Tire-du-billet et que la requête sera traitée avec la représentation monblog.org/incex.php?post/Tire-du-billet

ce, à cause de ma rêgle apache:

RewriteRule ^/(.*) /index.php?post/$1 [L]

Merci pour m'avoir pointé une modif plus générique, j'ai modifié le fichier prepend.php et ça marche. Mais de là à faire un plugin, c'est plus compliqué.

Dernière modification par aloxe (2020-10-04 21:32:24)

Hors ligne

#10 2020-10-05 17:50:16

adjaya
Membre
Lieu : Provence - Luberon
Inscription : 2006-09-05
Site Web

Re : Changement de lien /Titre vers /post/Titre suite à une mise à jour

aloxe a écrit :

Merci pour ces suggestions, je viens d''installer freeUrls et cela ne propose que la redirection des pages ''lang    pages    gal    galitem    category    tag'' mais pas des posts. C'est ce qui m'intéressait. Dommage…

de post aussi, je t'assure, vu que c'est ce qui a motivé la creation de ce plugin.


Photo, Art et Création Numérique : http://benoit-grelier.photo7.fr/

Hors ligne

#11 2020-10-12 11:53:51

aloxe
Membre
Inscription : 2014-12-22

Re : Changement de lien /Titre vers /post/Titre suite à une mise à jour

adjaya a écrit :
aloxe a écrit :

Merci pour ces suggestions, je viens d''installer freeUrls et cela ne propose que la redirection des pages ''lang    pages    gal    galitem    category    tag'' mais pas des posts. C'est ce qui m'intéressait. Dommage…

de post aussi, je t'assure, vu que c'est ce qui a motivé la creation de ce plugin.

je viens de le réactiver et en effet il y a posts seulement je ne comprends pas trop comment marche de plugin, l'interface est plutȯt sybiline

☐ post                        ☐ redirect
[Enregistrer la configuration]

Hors ligne

#12 2020-10-12 19:04:51

adjaya
Membre
Lieu : Provence - Luberon
Inscription : 2006-09-05
Site Web

Re : Changement de lien /Titre vers /post/Titre suite à une mise à jour

Cocher 'post' supprime le post/ dans l'url, et cocher 'redirect' fait une redirection  permanente (301) de l'ancienne url vers la nouvelle.


Photo, Art et Création Numérique : http://benoit-grelier.photo7.fr/

Hors ligne

#13 2020-10-15 14:11:50

aloxe
Membre
Inscription : 2014-12-22

Re : Changement de lien /Titre vers /post/Titre suite à une mise à jour

Est ce que ce plugin fonctione quand le blog est réglé pour fonctionner à la fois avec le mode (Méthode de lecture de l'URL) QUERY STRING et le mode PATH INFO ? ou seulement PATH INFO?

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map