|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 802 ![]() |
Bonjour à toutes et à tous,
je me mets tout doucement à la réécriture d'url en tentant de développer une appli MVC. Ma règle fonctionne bien pour ce que j'ai envie de faire, mais je me suis posé une question en raison d'un caractère venant foutre le brin dans mon dernier paramètre... Voici ma règle : Code :
RewriteRule ^index.php/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/?(.*?)$ index.php?controller=$1&action=$2&args=$3 [L] Cependant si je mets le caractère '&' dans les arguments PHP me le considère comme le séparateur de variable. Chose tout à fait attendue mais que j'aimerai contourner sans avoir à encoder mes urls. Auriez-vous une idée ? Est-ce possible ? J'aurai aussi une seconde demande, j'ai tenté de ne pas faire apparaître index.php afin d'avoir une url plus "propre" (question de goût je sais... Comment dois-je mettre ceci en oeuvre ?
__________________
|
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Inscription : mars 2008 Messages : 2 686 ![]() |
Bonjour,
Je ne m'y connais pas mais il n'y a pas un caractère d'échappement pour éviter que PhP ne parse le caractère "&" ? |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 802 ![]() |
Il faudrait passer par les entities mais cela n'intervient pas dans la règle mais du côté de la construction de l'url.
Chose que je ferrai s'il n'existe pas de solution avec une règle.
__________________
|
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : août 2005 Messages : 8 283 ![]() |
Tu peux tenter de travailler également sur la query string dans ta règle mais ce n'est pas la solution la plus propre : la solution la plus propre est d'utiliser les entités pour qu'Apache ne considère pas ce qui suit le premier & comme des paramètres d'URL (query string).
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 802 ![]() |
Ok donc pas de possibilité propre sans les entities.
Merci de vos réponses. ![]() Une question de réglée donc. Concernant une règle ne faisant pas apparaître index.php est-ce possible ? Actuellement tous mes tests pointent sur du 404 ou bien bouclent sur le index.php Exemple de bouclage : domaine/index.php/controleur/action/controleur/action
__________________
|
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : août 2005 Messages : 8 283 ![]() |
Oui, ca doit être possible sans index.php puisque Wikipedia le fait. A tout hasard, ajoute ceci tout en haut du .htaccess :
Et si ça ne change rien, peux-tu nous donner le .htaccess complet ?
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Baptiste ROUSSELÉtudiant Inscription : janvier 2011 Messages : 802 ![]() |
Oui je vous donne ça ce soir si j'oublie pas.
Sachant qu'il a malheureusement bien évolué car j'avais pas prévu le cas des ressources externes (css, js, images, ect) et que ça passait aussi dans ma règle...
__________________
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com