Bizarrerie dans la règle de ré-écriture

  • Auteur de la discussion Auteur de la discussion Alchy
  • Date de début Date de début
Nouveau WRInaute
Bonsoir à tous!

J'ai un léger problème mais je ne vois pas d'où il peut venir...

Le site comporte des modules (Ex : membre) et des actions (Ex:connexion).
Dans certains cas, le nom du module et de l'action sont les mêmes (Ex:inscripion)

L'accès à une action se fait de la manière suivante
Code:
index.php?module=membre&action=connexion
index.php?module=inscription&action=inscription
________

De manière à voir
Code:
www.exemple.com/membre/connexion
www.exemple.com/inscription

j'impose les règles
Code:
#Routage
RewriteRule ^([a-z]+)/?$ index.php?module=$1&action=$1 [L]
RewriteRule ^([a-z]+)/([a-z]+)/?$ index.php?module=$1&action=$2 [L]

_____

Dans ce cas, ces 5 urls renverront à la même page
Code:
www.exemple.com/inscription
www.exemple.com/index.php?module=inscription&action=inscription

www.exemple.com/inscription/
www.exemple.com/inscription/inscription
www.exemple.com/inscription/inscription/

Mon problème est que sur le formulaire d'inscription, un système de captcha est installé.
Dans les deux premiers cas, l'image s'affiche (url de l'image : http://www.exemple.com/crypt/captcha.png)
En revanche, les trois suivants indiquent http://www.exemple.com/inscription/crypt/captcha.png et n'affichent donc pas l'image.

Je ne comprends pas du fait que toutes ces combinaisons se traduisent par une seule et même url qui est : index.php?module=inscription&action=inscription

Avez-vous des idées? Veuillez m'excuser pour la longueur du post!

Bonne soirée à tous
 
WRInaute discret
Bonsoir
Je crois que c'est un soucis de chemin d'appel.

On dirai que tu appels l'image du captcha de cette façon :
crypt/captcha.png

Essaye d'ajouté un / devant l'url vers l'image du captcha.
 
Nouveau WRInaute
L'arborescence est la suivante

./index.php
./crypt|
........|captcha.php
./modules|
------------| /inscription|
----------------------------|inscription.php
------------|/vues|
....................|formulaireConnexion.php

(Le site adopte un modèle MVC)

Il fonctionne de la manière suivante
index.php a dit:
$captcha = "./crypt/captcha.php";
include $captcha;

...
Analyse de "modele" et "action"
...
include "modules/inscription/inscription.php";

inscription.php a dit:
include "vues/formulaireInscription.php";

[

Si bien qu'au final, notre index.php appelle une méthode qui est inclu au tout début.
Index.php fini par générer un <img src="./crypt/captcha.png" /> quelque soit l'adresse en toute logique (vu les règles de réécritures) seulemenet les trois dernières adresses donnent <img src="./inscription/crypt/captcha.png" /> comment ce fameux "inscription/" se retrouve dans l'histoire?

Pire encore, http://www.exemple.com/inscription et http://www.exemple.com/inscription/ sont soumis à LA MEME règle grâce à "/?" (si je commente la règle, ces deux adresses sont fausses. Elles sont donc réécrites de la même manière!

J'en perds mon latin !
 
Discussions similaires
Haut