|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
max6 WRInaute occasionnel

Inscrit le: 18 Mai 2003 Messages: 168
|
Posté le : Jeu Avr 20, 2006 12:38 Sujet du message: Rewriting sous forme de dossier avec dossier identique |
|
|
Bonjour
Voila un truc que je comprends pas , j'ai un dossier a la base de mon site MONDOSSIER , dedans 3 fichiers PHP , f1.php,f2.php,f3.php .
Je veux réécrire les urls du type
monsite.fr/MONDOSSIER/f1.php?var1=$1
monsite.fr/MONDOFFIER/f2.php?var1=$1&var2=$2&var3=$3
monsite.fr/MONDOSSIER/f3.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5
en respectivement :
monsite.fr/MONDOSSIER/var1/
monsite.fr/MONDOSSIER/var1/var2/var3/
monsite.fr/MONDOSSIER/var1/var2/var3/var4/var5/
Ca fonctionne bien pour la premiere URL mais pas pour les autres voici mon super code qui marche pas :
RewriteEngine on
RewriteRule ^.*MONDOSSIER/(.*)/$ /MONDOSSIER/f1.php?var1=$1
RewriteRule ^.*MONDOSSIER/(.*)/(.*)/(.*)/$ /MONDOSSIER/f2.php?var1=$1&var2=$2&var3=$3
RewriteRule ^.*MONDOSSIER/(.*)/(.*)/(.*)/(.*)/(.*)/$ /MONDOSSIER/f3.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5
En fait il réécrit seulement la premiere URL correctement et les autres il ne veut pas , a quoi est ce du ? au fait que le nom de dossier soit identiques pour les 3 regles ?
parcque si je change le nom de dossier pour chaque regle ca fonctionne ... mais je veux pas comme ca ...
Si quelqu'un sait .... merci |
|
| |
|
 |
max6 WRInaute occasionnel

Inscrit le: 18 Mai 2003 Messages: 168
|
Posté le : Jeu Avr 20, 2006 12:50 Sujet du message: Rewriting sous forme de dossier avec dossier identique |
|
|
Je me réponds a moi meme voici la solution qui fonctionne .
Ne me demandez pas pk je n'en sais rien mais ca marche en tt cas .
J'aimerai quand meme bien comprendre ...
RewriteEngine on
RewriteRule ^.*MONDOSSIER/(.*)/(.*)/(.*)/(.*)/(.*)/$ /MONDOSSIER/f3.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5
RewriteRule ^.*MONDOSSIER/(.*)/(.*)/(.*)/$ /MONDOSSIER/f2.php?var1=$1&var2=$2&var3=$3
RewriteRule ^.*MONDOSSIER/(.*)/$ /MONDOSSIER/f1.php?var1=$1 |
|
| |
|
 |
mumbly WRInaute discret

Inscrit le: 23 Nov 2005 Messages: 70
|
Posté le : Jeu Avr 20, 2006 13:02 Sujet du message: Rewriting sous forme de dossier avec dossier identique |
|
|
| dans l'expression (.*) le point indique n'importe quel caractere y compris le / donc comme tu voulais le faire il aurait fallut l'exclure de l'expression |
|
| |
|
 |
max6 WRInaute occasionnel

Inscrit le: 18 Mai 2003 Messages: 168
|
Posté le : Jeu Avr 20, 2006 13:50 Sujet du message: Rewriting sous forme de dossier avec dossier identique |
|
|
Cad ?
Un truc du style :
RewriteRule ^.*MONDOSSIER/(*)/(*)/(*)/(*)/(*)/$ /MONDOSSIER/f3.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5
Ca fonctionnerait ce genre de truc ? |
|
| |
|
 |
e-kiwi Modérateur

Inscrit le: 23 Déc 2003 Messages: 12226 Localisation: Toulouse
|
Posté le : Jeu Avr 20, 2006 13:53 Sujet du message: Rewriting sous forme de dossier avec dossier identique |
|
|
| la réponse que tu souhaite : il execute tes regles de haut en bas, donc si tu as une regle plus générale situé au dessus d une specifique, la spécifique n'est pas utilisé. |
|
| |
|
 |
max6 WRInaute occasionnel

Inscrit le: 18 Mai 2003 Messages: 168
|
Posté le : Jeu Avr 20, 2006 14:17 Sujet du message: Rewriting sous forme de dossier avec dossier identique |
|
|
C'est bien ce que je me disais , en inversant l'ordre ca fonctionne donc .
MAIS EST ce bien raisonnable de procéder comme je fais niveau moteurs ? ressources ? |
|
| |
|
 |
wullon WRInaute accro

Inscrit le: 18 Sep 2004 Messages: 3892 Localisation: France
|
Posté le : Jeu Avr 20, 2006 14:42 Sujet du message: Rewriting sous forme de dossier avec dossier identique |
|
|
Niveau moteur, la façon dont tu as fait l'URLR ne change rien.
Par contre, 6 sous-dossiers c'est peut être un peu trop, mais il faudrait savoir sur quoi c'est utilisé pour en dire plus
Niveau ressources, je ne sais pas trop, je pense que c'est bon ^^ (par contre, on m'a dit que c'était mieux de tout mettre directement dans la conf, en évitant les .htaccess). |
|
| |
|
 |
ChezThierry WRInaute impliqué

Inscrit le: 21 Oct 2005 Messages: 273
|
Posté le : Jeu Avr 20, 2006 15:01 Sujet du message: Rewriting sous forme de dossier avec dossier identique |
|
|
Bon, tu as résolu ton pb, mais histoire de marquer le coup :
En règle général, il faut éviter le .* qui a tendance à en prendre plus que l'on ne le voudrait (ex: dans ton cas, il prenait 'var1/var2/var3/var4/var5/' comme une seule variable et tu ne t'en doutait pas).
Le mieux est de limiter au maximum la règle.
Ex: tu sais que tes variables ne sont composées (par exemple, hein, c'est peut-etre pas ton cas) que de lettres et de chiffres, et bien autant écrire :
([a-zA-Z0-9]+)
ça évite bien des surprises |
|
| |
|
 |
mumbly WRInaute discret

Inscrit le: 23 Nov 2005 Messages: 70
|
Posté le : Jeu Avr 20, 2006 15:56 Sujet du message: Rewriting sous forme de dossier avec dossier identique |
|
|
[quote="max6"]
RewriteRule ^.*MONDOSSIER/(*)/(*)/(*)/(*)/(*)/$ /MONDOSSIER/f3.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5
[quote]
Ca aurait été plutot comme ca (mais je suis pas bien sur):
RewriteRule ^MONDOSSIER/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /MONDOSSIER/f3.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5 |
|
| |
|
 |
max6 WRInaute occasionnel

Inscrit le: 18 Mai 2003 Messages: 168
|
Posté le : Jeu Avr 20, 2006 16:30 Sujet du message: Rewriting sous forme de dossier avec dossier identique |
|
|
Oui voila 6 sous dossiers c'est a ce niveau que je m'interroge le plus .
Disons que les noms des dossiers changent tous les temps , il y a environ 250 000 pages qui seront écrites de cette manière donc ca changera forcement , de meme que le nom du dossier source MONDOSSIER qui changera 8 fois exactement de cette maniere :
MONDOSSIER1/var1/
MONDOSSIER1/var1/var2/var3/
MONDOSSIER1/var1/var2/var3/var4/var5/var6/
MONDOSSIER 2/var1/
etc jusque MONDOSSIER8
En tout environ 250 000 pages .
Donc c'est vrai que ca n'est pas simple de prévoir la réaction des moteurs a ce niveau .
Il faudra ajouter a ca un 7eme dossier qui viendra tout a la fin que je pense terminer par .html mais je m'interroge encore ...
A savoir aussi que les noms des dossiers vont de 4 a 50 lettres ... on peut pas faire n'importe comment ... |
|
| |
|
 |
Suede WRInaute accro

Inscrit le: 04 Oct 2002 Messages: 3642 Localisation: Suède
|
Posté le : Jeu Avr 20, 2006 16:34 Sujet du message: Rewriting sous forme de dossier avec dossier identique |
|
|
A la place de * tu peux mettre par exemple [A-a0-9-] si tu sais quel type de caractere tu auras.
François |
|
| |
|
 |
max6 WRInaute occasionnel

Inscrit le: 18 Mai 2003 Messages: 168
|
Posté le : Jeu Avr 20, 2006 16:41 Sujet du message: Rewriting sous forme de dossier avec dossier identique |
|
|
| Le soucis c'est que j'aurai du 0-9 et du a-z mais aussi du - et les - viennent seulement parfois pas tout le tps . |
|
| |
|
 |
| |
|
|