We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 28432
    • 372 Posts
    Salut Modxien !

    Ma version de modx : MODX Revolution 2.4.3-pl (advanced)

    J'ai un problème de réécriture d'url :

    Sur une seule installation Modx, les pages sont accessibles depuis 2 URL différente
    - monsite.com/mareecriture.html
    - monsite.com/index.php?id=3

    C'est deux URL vont vers la même ressource, ce qui est normal. Par contre je ne comprends pas pourquoi le système ne récrit pas les URL si on accède via index.php?id=3 par exemple.
    Est-ce que quelqu'un a une idée ou a déjà vu ce problème ?

    Merci d'avance.

    This question has been answered by Steeve. See the first response.

    • discuss.answer
      • 28432
      • 372 Posts
      Salut,

      J'ai trouvé 2 solutions :

      La première c'est avec l'extension CustomRequest avec lequel j'ai géré la pagination (getPage).
      Après avoir ajouté le l'extension il suffit d'aller dans extensions => CustomRequest puis de créer une nouvelle configuration comme ceci :
      Configuration name : Pagination
      Alias Path : #.*?(page/)#
      Resource : vide
      URI Parameter : ["page"]
      Regular expression : #(\d+)#
      Il faut ensuite changer les TPL de getPage pour que les liens ressemblent a ça : monsite.fr/page/7/ (onglet propriétés du snippet getPage) exemple :
      [[site_url]][[*uri]]page/[[+pageNo]]/

      Et voilà de belle réécriture d'URL pour les pages.

      La deuxième c'est encore plus simple. On créer une URL comme on le désire, exemple : mon-produits-id-unique.html et puis on lui dit quoi faire avec un plugin
       
      // ici on test si le produit existe
      
      // Et si le produit existe on le redirige vers la page qui affiche le produit simplement avec $modx->sendForward(14);
        if(isset($product)){
      	$modx->sendForward(14);
        } // Sinon il va tout seul renvoyer une vers la page d'erreur 404 par défaut.
      }

      Il faut s'assurer que le plugin s'execute sur l'évènement système : OnPageNotFound !!! (onglet évènements système du plugin)

      J'espère que ça aidera certain ;-)