Joli URL

Résolu
para.rami Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
Xavierdu34 Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   -
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

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
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
0
Xavierdu34 Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   21
 
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.
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
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+

0
para.rami Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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?
0
mpmp93 Messages postés 6648 Date d'inscription   Statut Membre Dernière intervention   1 340
 
En ZF on ne crée pas de répertoire.....
0
Xavierdu34 Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   21
 
en url rewrite sans ZF non plus
0