URL rewriting mode d'emploi

Bonjour,

Pour commencer je sais que plusieurs sujets sur l'URL rewriting existent déjà sur ce forum (par ici : http://forum.pluxml.org/search.php?action=search&keywords=url+rewriting&author=&forums=&search_in=0&sort_by=0&sort_dir=ASC&show_as=posts), mais j'avoue ne pas avoir trouvé ce que je cherche. Si ce sujet n'a pas à être posté sur ce forum ou si je me suis trompé de catégorie merci de me le dire :)

Ce que je cherche à faire avec PluXml c'est obtenir des URL construites de cette façon : monsite.com/2012/05/06/titre-de-mon-article, et donc abandonner les numéros d'article dans l'URL comme le propose actuellement PluXml (même si ce plugin http://forum.pluxml.org/viewtopic.php?id=3344 est déjà très utile pour paramétrer un peu les URL). Je me doute que ce n'est pas forcement simple à mettre en place, mais je voudrais au moins connaître les différentes étapes possibles pour arriver à cela (.htaccess, PHP...), et tout simplement savoir si c'est possible !

Merci par avance !

Réponses

  • JosJos Member
    Je me suis posé la même question il y a peu de temps, à savoir, comment enlever le numéro de l'article dans l'url. Il semble que d'apres le plugin que tu cite, ce ne soit pas possible. Donc, je dirai qu'à ce jour, on ne peu pas enlever le numéro de l'article.
  • Merci pour ta réponse Jos !
    Effectivement ça semble compliqué, je cherche un peu dans les fichiers PHP pour voir comment ça se passe, peut-être qu'il y a des éléments à modifier dans le coeur du système...
    Toute aide supplémentaire serait fortement appréciée ! :)
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour
    Les numéros d'articles sont nécessaires telle que la réécriture d'url est actuellement faite.
    La gestion des articles ne peut pas être faite sans.

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • StéphaneStéphane Member, Former PluXml Project Manager
    Je te donne une piste

    dans le fichier core/lib/plx.class.motor.php, dans la fonction prechauffage();

    en dessous de la ligne
    if(eval($this->plxPlugins->callHook('plxMotorPreChauffageBegin'))) return;
    

    ajoute
    if($this->get AND preg_match('/^([0-9]{4})\/([0-9]{2})\/([0-9]{2})\/([a-z0-9-]+)/',$this->get,$match1)) {
    	$motif = '/^[0-9]{4}.([home|'.$this->activeCats.',]*).[0-9]{3}.'.$match1[1].$match1[2].$match1[3].'[0-9]{4}.'.$match1[4].'.xml$/'; # Motif de recherche
    	$aFiles = $this->plxGlob_arts->query($motif,'art','rsort',0,1,'before');
    	preg_match('/([0-9]{4}).(.*)/', $aFiles[0], $match2);
    	$this->get = 'article'.intval($match2[1]).'/'.$match1[4];
    }
    

    ça te permettra d'accéder à un article avec une url du genre
    index.php?2012/05/09/premier-article
    

    Bon le code n'est pas très propre, j'ai fais ça rapide. c'est un début pour prendre en charge ce que tu veux. à creuser donc...

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Ho merci pour cette réponse (je n'avais vu que la première au début) ! Je m'en vais tester cette trouvaille !
    Du coup j'abuse un peu (mes connaissances en PHP sont tout de même très limitées et je ne comprends pas tout au code), et j'ai deux questions :
    - j'ai collé le bout de code mais ça ne change rien (avec ou sans plxPermalinks)...
    - comment ajouter la partie AAAA/MM/JJ, est-ce que ça peut être automatique ?
    - est-ce que ça serait gérable de retirer le "index.php?" ? J'ai un peu peur de connaître la réponse...
    En tout cas un très grand merci (très sincère) pour tout ça !
    Pour voir ce que ça donne j'ai une version bêta en ligne ici : http://beta.quaternum.net/
    Encore merci :)
  • Stéphane,
    Rectificatif, en fait ça fonctionne très bien !

    Le billet : http://beta.quaternum.net/8/pluxml-un-moteur-en-dur.html est aussi visible via les URL suivantes :
    - beta.quaternum.net/index.php?2012/05/14/pluxml-un-moteur-en-dur/
    mais aussi :
    - http://beta.quaternum.net/2012/05/14/pluxml-un-moteur-en-dur/
    C'est donc exactement ce à quoi je voulais arriver !
    Encore merci !!!

    Mais je ne suis pas à court de questions ;)
    - comment passer à l'étape suivante, c'est-à-dire mettre à profit cette possibilité sur toutes les pages du site/blog : page d'accueil, flux RSS, archives, pages des tags et catégories...
    - comment mettre en place le même genre de chose pour les pages statiques : à la place de http://beta.quaternum.net/static2/a-propos avoir http://beta.quaternum.net/a-propos

    Encore tous mes remerciements pour ces quelques lignes de code bien utiles !
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour antoinentl

    Le code que j'ai donné est loin d'être parfait car il génère du "duplicate content", ce qui n'est pas terrible pour le référencement. Il a au moins le mérite de montrer que ça "semble" possible d'avoir le type d'url que tu voulais.
    Pour tes autres demandes, je me suis noté tout ça pour voir plus tard ce qu'il est possible de faire.

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Certes c'est peut-être encore imparfait (ou plutôt incomplet), mais c'est un bon début, et le fait de voir que cela fonctionne me rassure sur le passage possible de Wordpress à PluXml dans mon cas !
    Peut-être que ces développements pourraient s'ajouter à l'extension déjà existantes ?
    Si tu as un peu de temps pour travailler sur la suite (paramètres des URL des pages statiques et "duplicate content") je suis preneur et je t'en remercie par avance !
    Encore merci :)
Connectez-vous ou Inscrivez-vous pour répondre.