Probleme d'écriture d'une règle de réécriture (.htaccess)

Consultez la formation au REFERENCEMENT naturel Google de WebRankInfo / Ranking Metrics

rtb
WRInaute passionné
WRInaute passionné
 
Messages: 1065
Enregistré le: 14 Nov 2004

Probleme d'écriture d'une règle de réécriture (.htaccess)

Message le Mar Mai 03, 2005 13:46

Bonjour,
je tente de reecrire certaines url avec cette regle
RewriteRule ^camping-([a-z]+)-([0-9]+)-([0-9]+)\.html$ /landes-ville-rub.php?id_rubrique=$2&id_mot=$3[QSA,L]
Cela fonctionne sans probleme ([a-z]+) etant un nom de ville sauf dans les cas ou le nom de ville contient un - et la c'est la cata, j'ai en effet des villes qui en contiennent jusqu'a 3 - .
Si quelqu'un a une explication pour adapter la regle afin de gerer ce probleme, je debute en UR et cela me pose probleme ...
Merci


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Enregistré le: 25 Avr 2005

Message le Mar Mai 03, 2005 21:41

et un truc du style:
RewriteRule ^camping-([a-z].*)(-.*)([a-z].*)(-.*)([a-z].*)-([0-9]+)-([0-9]+)\.html$ /landes-ville-rub.php?id_rubrique=$2&id_mot=$3[QSA,L]

Marche pas?

En cas, explique un peu mieux l´URL base et L´URL rewrite, pour bien comprendre le problème...

rtb
WRInaute passionné
WRInaute passionné
 
Messages: 1065
Enregistré le: 14 Nov 2004

Message le Mer Mai 04, 2005 9:25

J'ai essayer mais cela ne marche pas, les parametre ne semble pas passer...
Je vais essayer d'etre un peu plus clair :
les url de depart :
rubrique-nom-de-ville-var1-var2.html
vers
landes-ville-rub.php?id_rubrique=var1&id_mot=var2
Le probleme vient du nom de ville qui est soit un nom simple $nom, soit $nom-ville soit $nom-de-ville, le separateur - apparaissant x fois, cela pose le probleme de recuperation des variables.
J'arrive pas a etablir une regle qui traite tous les differents cas.
Si vous pouviez m'eclairer avec les explications sur la regle proposée ci dessus, je suis une bille en rewriting ... ;-)
Merci de vos suggestion
rtb


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Enregistré le: 25 Avr 2005

Message le Mer Mai 04, 2005 15:27

les url de depart :
rubrique-nom-de-ville-var1-var2.html
vers
landes-ville-rub.php?id_rubrique=var1&id_mot=var2

RewriteCond %{REQUEST_URI} ^rubrique-(.*)html$ [NC]
RewriteRule ^(.*)-(.*)-(.*)\.html$
http://tonsite/landes-$1-rub.php?id_rub ... &id_mot=$3
# $1 = rubrique-nom-de-ville

RewriteCond %{REQUEST_URI} ^landes-(.*)-rub\.php?id_rubrique(.*)html$ [NC]
RewriteRule ^(.*)rubrique-(.*)$ http://tonsite/$1$2 [L]

Il y a peut être des erreurs car il est tôt et c´est de tête... A figoler donc.


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Enregistré le: 25 Avr 2005

Message le Mer Mai 04, 2005 15:34

Ou sinon (suivant toa règle du début):

RewriteRule ^camping-([a-z]+((-([a-z]+)).*)-([0-9]+)-([0-9]+)\.html$ /landes-ville-rub.php?id_rubrique=$2&id_mot=$3[QSA,L]
En fait le problemem vient de tes - de partout.
Tu peux pas les remplacer comme ça?

rubrique_nom-de-ville_var1_var2.html

Ce serait beaucoup plus simple... :lol:

rtb
WRInaute passionné
WRInaute passionné
 
Messages: 1065
Enregistré le: 14 Nov 2004

Message le Mer Mai 04, 2005 15:38

merci a toi, je vais faire des essais avec ses regles, je te tiens au courant mais c'est vrai que ces -... pas pratique mais plus pertinent pour le referencement

dasikund
WRInaute discret
WRInaute discret
 
Messages: 134
Enregistré le: 28 Avr 2005

Message le Mer Mai 04, 2005 15:40

Salut,

Et tout simplement :

RewriteRule ^rubrique-(.*)-(.*)-(.*)\.html$ landes-ville-rub.php?id_rubrique=$2&id_mot=$3 [L]

ne marcherait-il pas ?

Cependant, je ne vois pas d'où provient ton nom de ville ? Est-ce une autre variable ? N'y a-t-il pas de $1 ?

Si tu pouvais nous éclairer sur la provenance de ton nom de ville, ça pourrait peut-être débloquer l'affaire. :)

A+

Doug

rtb
WRInaute passionné
WRInaute passionné
 
Messages: 1065
Enregistré le: 14 Nov 2004

Message le Mer Mai 04, 2005 15:46

le nom de ville est ecrit par une fonction en php, on prend le nom de ville, remplace les majuscules par minuscule et les espace par des -

rtb
WRInaute passionné
WRInaute passionné
 
Messages: 1065
Enregistré le: 14 Nov 2004

Message le Mer Mai 04, 2005 15:47

correiaj a écrit:Ou sinon (suivant toa règle du début):

RewriteRule ^camping-([a-z]+((-([a-z]+)).*)-([0-9]+)-([0-9]+)\.html$ /landes-ville-rub.php?id_rubrique=$2&id_mot=$3[QSA,L]
essayer mais ca provoque internal serveur error... ;-)

dasikund
WRInaute discret
WRInaute discret
 
Messages: 134
Enregistré le: 28 Avr 2005

Message le Mer Mai 04, 2005 15:55

Oui en effet dans ce cas là, ce sont les "-" dans ton retour de variable de la ville qui posent problème.
Le moteur de Rewriting considère que chaque chaîne située entre 2 "-" est un paramètre.

Donc changer les "-" par des "_" pour séparer tes variables est indispensable. En revanche il faut absolument que tu passes le nom de ville en paramètre. Je ne sais pas si tu l'as fait, j'ai cru comprendre que non.

Peut-être un truc du style :

RewriteRule ^rubrique_(.*)_(.*)_(.*)\.html$ landes-ville-rub.php?ville=$1&id_rubrique=$2&id_mot=$3 [L]

J'espère que ça va t'aider.

Doug

rtb
WRInaute passionné
WRInaute passionné
 
Messages: 1065
Enregistré le: 14 Nov 2004

Message le Mer Mai 04, 2005 16:03

dasikund a écrit:Donc changer les "-" par des "_" pour séparer tes variables est indispensable. En revanche il faut absolument que tu passes le nom de ville en paramètre. Je ne sais pas si tu l'as fait, j'ai cru comprendre que non.

Je comprends pas pourquoi je dois passer le nom de ville en parametre, c'est la variable id_mot qui me permet de retrouver la ville.
en tout cas merci de votre aide a tous les deux ;-) je rame serieux avec ce truc !
Y'a pas moyen d'ecrire une regle qui isole la partie entre
^rubrique-[partie a isolé quelque soit le nombre de -]([a-z]+)[/partie a isolé quelque soit le nombre de -]-([0-9]+)-([0-9]+)\.html$ /landes-ville-rub.php?id_rubrique=$2&id_mot=$3[QSA,L]
Hum... je sais pas si j'arrive a etre clair...
merci

dasikund
WRInaute discret
WRInaute discret
 
Messages: 134
Enregistré le: 28 Avr 2005

Message le Mer Mai 04, 2005 16:11

Aaaaaaah ok, tu "calcules" le nom de la ville ensuite !

Dans ce cas précis, je ne crois pas que tu puisses l'afficher dans l'URL alors, tu obtiendras une URL du style :

rubrique__param1_param2.html

avec un double "_".

Une règle peut peut-être pallier ce problème, mais en réalité, je ne suis pas un expert du rewriting non plus :p. J'ai sous-estimé le problème je pense.

Désolé de ne pouvoir aider plus.

Doug

rtb
WRInaute passionné
WRInaute passionné
 
Messages: 1065
Enregistré le: 14 Nov 2004

Message le Mer Mai 04, 2005 16:16

en tout ca merci bien a toi a vous d'ailleur ;-)


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Enregistré le: 25 Avr 2005

Message le Mer Mai 04, 2005 17:01

mais le nom de la ville te sert à quelquechose?
Sinon, c´est simple...


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Enregistré le: 25 Avr 2005

Message le Mer Mai 04, 2005 17:06

si le nom de ville ne te sert à rien, fait comme ça:
(je pensais que le -ville- représentait une variable)

RewriteRule ^(.*)-([0-9]+)-([0-9]+)\.html$ http://tonsite/landes-ville-rub.php?id_ ... &id_mot=$3 [QSA,L]

non plus?

rtb
WRInaute passionné
WRInaute passionné
 
Messages: 1065
Enregistré le: 14 Nov 2004

Message le Mer Mai 04, 2005 17:34

internal serveur error...

rtb
WRInaute passionné
WRInaute passionné
 
Messages: 1065
Enregistré le: 14 Nov 2004

Message le Mer Mai 04, 2005 17:36

:oops: desolé ca a l'air de coller

rtb
WRInaute passionné
WRInaute passionné
 
Messages: 1065
Enregistré le: 14 Nov 2004

Message le Mer Mai 04, 2005 17:42

Merci a toi correiaj, ca fonctionne parfaitement, et desolé de pas bien expliqué mais ne comprenant pas bien encore le principe, c'est pas evident.
En tout cas un grand merci a vous


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Enregistré le: 25 Avr 2005

Message le Mer Mai 04, 2005 17:53

Ya pas de quoi.
Si tu as des doutes, ou que tu veux bien comprendre le principe de réécriture, le mieux c´est de prendre directement les infos sur le site de Apache. Et si tu parles bien Anglais c´est encore mieux car le texte traduit sur ce module n´est pas complet, mais très utile tout de même.

rtb
WRInaute passionné
WRInaute passionné
 
Messages: 1065
Enregistré le: 14 Nov 2004

Message le Mer Mai 04, 2005 18:00

en tout cas s'est vraiment sympa de votre part, je crois que d'avoir bataillé comme ca ca m'a quand meme permis de mieux comprendre le fonctionnement, c'est quand meme assez abstrait comme truc quand on commence. Je vais aller jeter un coup d'oeil sur les doc apache meme si l'anglais... encore un grand merci ;-)
Je vais voir maintenant si c'est utile pour le ref ;-)


Formation recommandée sur ce thème :

Formation REFERENCEMENT naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... 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 :