.htaccess problème RewriteRule

Fermé
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 - 5 nov. 2009 à 08:29
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 - 5 nov. 2009 à 13:42
Bonjour,

j'ai un problème étrange avec une regex.

la voici :
RewriteRule ^(admin|forum|membre)(/([a-z]+)?)?(/([a-z]+)?)?(/(.+)?)?$ /monsite/index.php?page=$1&$1=$3&$3=$5&$5=$7 [L]


quand j'écris http://localhost/monsite/admin
ca me redirige à http://localhost/monsite/admin/?page=admin&admin=&=&=
et je tombe malgré tout sur la bonne page. autrement dit il n'y a que l'url affichée qui pose problème

alors qu'avec forum et membre ça fonctionne parfaitement

et si j'écris http://localhost/monsite/admin/ ça fonctionne...

j'ai donc deux question :

la 1ere : Pourquoi?

la seconde : comment faire pour repasser l'url dans une regex qui enlève les '&=' ? ça me parrait inutile de les laisser même si a priori il ne poses pas de problème...

merci d'avance pour vos réponses

2 réponses

P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
5 nov. 2009 à 09:16
Hey,

Les régles de réécriture ne font pas de redirection, tes redirections sont faites ailleurs dans ton application, apache ou script.

http://localhost/monsite/admin => apache tente de trouver un fichier se nommant admin dans le répertoire monsite, comme il n'existe pas (404), une redirection est effectuée vers ta page par défaut.

http://localhost/monsite/admin/ => apache va rechercher un index.html|index.php (directoryIndex) dans le répertoire admin.

Pour la 2nde question, c'est à toi de définir d'autres règles en fonction des arguments optionnels ou non.
Mais comme tu dis cela n'a guère d'importance que des arguments passés dans l'url soit sans valeurs ou non.
La beauté des urls, l'internaute s'en fiche :)
0
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
5 nov. 2009 à 13:42
merci pour ta réponse elle m'a bien aidée

ce qui est pratique avec ca c'est que les url rendent plutôt bien et que je n'avais besoin que d'une règle de réécriture pour tout le site.

par contre pour apache je viens de comprend en écrivant cette phrase !

les dossiers membre et forum n'éxiste pas et ca fonctionne !
alors qu'il y a un dossier admin à la racine du site !

alors du coup si je comprend bien :

apache prend en priorité l'url fourni donc il cherche le dossier admin

il prend en compte le htaccess du dossier parent donc réécrit l'url

et ce que je ne comprend pas c'est pourquoi il renvoi une nouvelle url au navigateur et que ma page s'affiche normalement...
0