Partage
  • Partager sur Facebook
  • Partager sur Twitter

[MVC] Router et URL Rewrite

Sujet résolu
    18 juillet 2019 à 11:55:49

    Bonjour,

    Après un grand nombre de recherche je ne parvient pas à trouver une explication concrète pour résoudre mon problème.

    J'ai très bien compris l'architecture MVC avec la séparation : "view", "model" et "controler".

    Là où je bloque c'est au niveau du router, j'ai bien compris qu'il faut rediriger toutes les requêtes http vers celui-ci à l'aide d'un fichier htaccess.

    Ensuite ce que je ne comprend pas c'est que si l'utilisateur tape l'url : http://monsite.com/menu

    Comment je récupère le "/menu" pour le rediriger sur le bon contrôleur ?

    J'ai l'impression que le contrôleur utilise uniquement le $_GET ce qui m'embête car je souhaite garder des url "propres" du style :

    - http://monsite.com/home

    - http://monsite.com/menu

    - http://monsite.com/article/informatique/article1

    Pour ce dernier lien par exemple je souhaiterais récupérer "article" "informatique" et "article1" pour afficher le contrôleur commun aux articles et comprendre que c'est l'article 1 de la catégorie informatique à sélectionner.

    Peut être que le router n'est pas ma solution mais j'aime bien le principe de tout gérer à partir d'un seul point d'entré.

    J'ai aussi vu l'url rewriting mais si j'ai bien compris cela permet de simplifier les paramètres GET.

    J'ai crois être passé à côté de quelque chose.. Auriez-vous une solution pour répondre à mon besoin ?

    Merci de votre aide et bonne journée !

    • Partager sur Facebook
    • Partager sur Twitter
      18 juillet 2019 à 12:03:07

      > Comment je récupère le "/menu" pour le rediriger sur le bon contrôleur ?

      $_SERVER['REQUEST_URI']

      > J'ai aussi vu l'url rewriting mais si j'ai bien compris cela permet de simplifier les paramètres GET.

      Non, pas que.

      => Tu fous un FallbackResource dans ton .htaccess et dans le script qui sert de fallback tu "parses" $_SERVER['REQUEST_URI'] pour appeler le bon contrôleur ?

      -
      Edité par julp 18 juillet 2019 à 12:06:21

      • Partager sur Facebook
      • Partager sur Twitter
        18 juillet 2019 à 14:09:19

        Merci infiniment, $_SERVER['REQUEST_URI'] est exactement ce dont j'avais besoin ! Je n'ai plus qu'a splitter sur les "/" pour obtenir les données souhaités !

        Maintenant j'ai un soucis du côté du htaccess. J'en ai jamais utilisé auparavant.

        J'utilise un wamp sur windows et mon index.php se situe dans "www/mysite/index.php" et le .htaccess se situe dans "www/mysite/.htaccess"

        Lorsque je fait ceci :

        FallbackResource index.php

        et que je tape : http://localhost/mysite/nimportequoi

        Je tombe bien sur index.php.

        Or si je tape : http://localhost/mysite/test.php

        Je tombe toujours sur test.php :euh:

        Et dernier problème si je tape : http://localhost/mysite/nimportequoi/test

        Je ne suis par redirigé sur index.php (Internal server Error), visiblement cela ne prend pas en compte les sous dossiers..

        EDIT

        J'ai résolu mon problème, voici mon fichier htaccess :

        RewriteEngine On
        RewriteRule ^(.*)$ index.php [L,QSA]


        Je passe le post en résolu j'ai tout ce qu'il me faut à présen, un grand merci à toi julp ! :D

        -
        Edité par Mindrix 18 juillet 2019 à 14:18:55

        • Partager sur Facebook
        • Partager sur Twitter

        [MVC] Router et URL Rewrite

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown