Joli URL

Résolu
mon url est comme ceci localhost/projet/index.php?affichage=pages&action=village et comme le faire pour avoir ceci localhost/projet/affichage/pages/village ou est ce que je peut avoir une suggestion.je suis débutant en mvc

4 réponses

  1. Ce que tu cherches s'appelle de l'URL Rewriting.
    En gros, il faut rajouter/activer un module à Apache pour qu'il transforme à la volée une requête entrante sous la forme localhost/projet/affichage/pages/village en localhost/projet/index.php?affichage=pages&action=village.

    Je te suggères de rechercher dans cette direction.
    Un guide (en Anglais) : http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

    Xavier
    1. En admettant que ton hébergeur supporte l'url Rewriting, tu dois créer un fichier .htacess que tu met à la racine de ton site soit :
      localhost/projet/.htaccess

      le fichier .htacess doit contenir :
      RewriteEngine On
      RewriteBase /
      RewriteRule ^affichage-([a-zA-Z]+)-([a-zA-Z]+)$ index.php?affichage=$1&page=$2 [L]


      Cela redirigera de manière transparente toutes les pages du type localhost/projet/affichage-nimportequelcaracteres-nimportequelcaracteres2 vers localhost/projet/index.php?affichage=nimportequelcaracteres&action=nimportequelcaracteres2.

      cela est définie par ça : ([a-zA-Z]+) qui sous entends, n'importe quel chaine de caractères comprenant des majuscules et minuscules.. si tu veux ajouter des chiffres ce sera ([a-zA-Z0-9]+)

      Pour en savoir plus la dessus, c'est la règle des expressions régulières, ou autrement dit les Regex .. j'en parle sur un article de mon blog :
      http://ww12.xrecasens.info

      P.S. : si tu souhaites des / à la place des -, il faut se renseigner un peu, comme / est un séparateur je ne sais pas sous quelle écriture il faut les déclarer, mais avec un peu de recherche tu trouveras facilement.
      1. Bonjour,

        Ce que vous demandez est exactement ce que réalise Zend Framework

        Je vous conseille d'acquérir un bon ouvrage sur ce sujet.

        A la base, il vous faut un .htaccess qui fera la réécriture d'URL:

        SetEnv APPLICATION_ENV production
        RewriteEngine on
        RewriteCond %{REQUEST_FILENAME} !-s
        RewriteCond %{REQUEST_FILENAME} !-l
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php [NC,L]

        Ensuite, il faut installer dans les sous-répertoires adéquats Zend Framework.

        dans votre exemple:

        localhost/projet/affichage/pages/village

        affichage sera le controleur
        pages sera l'action

        A+

        1. Merci pour l'aide, une autre question : quand mon url devient localhost/projet/affichage/pages/village au lieu de localhost/projet/index.php?affichage=pages&action=village. pas de page afficher, mais je dois cree l repertoire affichage-paage-village pour afficher la page et qaund la page s'affiche le lien se retourne c'est a dire que sur le lien qui affiche localhost/projet/affichage/pages/village devient localhost/projet/affichage/pages/projet/affichage/pages/village.je sais pas porquoi?
          1. En ZF on ne crée pas de répertoire.....
          2. en url rewrite sans ZF non plus