Rewriting sous forme de dossier avec dossier identique

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

max6
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 168
Inscription: Dim Mai 18, 2003 1:37

Rewriting sous forme de dossier avec dossier identique

Message le Jeu Avr 20, 2006 11:38

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
WRInaute occasionnel
 
Messages: 168
Inscription: Dim Mai 18, 2003 1:37

Message le Jeu Avr 20, 2006 11:50

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
WRInaute discret
 
Messages: 70
Inscription: Mer Nov 23, 2005 17:12

Message le Jeu Avr 20, 2006 12:02

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
WRInaute occasionnel
 
Messages: 168
Inscription: Dim Mai 18, 2003 1:37

Message le Jeu Avr 20, 2006 12:50

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
Modérateur
 
Messages: 13817
Inscription: Mar Déc 23, 2003 9:04

Message le Jeu Avr 20, 2006 12:53

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
WRInaute occasionnel
 
Messages: 168
Inscription: Dim Mai 18, 2003 1:37

Message le Jeu Avr 20, 2006 13:17

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
WRInaute accro
 
Messages: 3914
Inscription: Sam Sep 18, 2004 15:06

Message le Jeu Avr 20, 2006 13:42

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é
WRInaute impliqué
 
Messages: 273
Inscription: Ven Oct 21, 2005 13:33

Message le Jeu Avr 20, 2006 14:01

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
WRInaute discret
 
Messages: 70
Inscription: Mer Nov 23, 2005 17:12

Message le Jeu Avr 20, 2006 14:56

[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
WRInaute occasionnel
 
Messages: 168
Inscription: Dim Mai 18, 2003 1:37

Message le Jeu Avr 20, 2006 15:30

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
WRInaute accro
 
Messages: 3721
Inscription: Ven Oct 04, 2002 11:22

Message le Jeu Avr 20, 2006 15:34

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
WRInaute occasionnel
 
Messages: 168
Inscription: Dim Mai 18, 2003 1:37

Message le Jeu Avr 20, 2006 15:41

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 .


Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités