Récupérer une expression qui se répète plusieurs fois

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

welcominh
Nouveau WRInaute
 
Messages: 38
Inscription: Jeu Juil 13, 2006 19:05

Récupérer une expression qui se répète plusieurs fois

Message le Mar Sep 23, 2008 18:47

bonjour à tous,

je m'attaque a l'URL rewriting depuis cet apres midi. Et je me trouve confronté à un problème que je ne sais pas vraiment comment résoudre.

J'aimerais transformer une url du type /mot1-mot2-mot3.html (avec autant de mots désirés, mais en général ca ne dépasse pas 5), en une url du type /search.php?mots=mot1 mot2 mot3... avec des espaces entre tous les mots.

Pour l'instant j'ai cela:
Code: Tout sélectionner
RewriteRule ^([0-9a-zA-Z]+)(-([0-9a-zA-Z]+))*\.html$ /search.php?mots=$1 $2 [L]


J'espérais (sans trop me faire d'illusion) que le $2 récupererait tous les mots à partir de mot2. Mais non. Je ne vois pas trop comment pouvoir faire ca, vu que la "structure" de l'url (en l'occurrence le nombre de mots) peut varier.

Pliz a l'aide.
Merci beaucoup.


jeanluc
WRInaute accro
WRInaute accro
 
Messages: 2661
Inscription: Lun Mai 03, 2004 14:48

Message le Mar Sep 23, 2008 19:10

Essaie ceci:
Code: Tout sélectionner
RewriteRule ^([0-9a-zA-Z]+)-([0-9a-zA-Z]+)-([0-9a-zA-Z]+)-([0-9a-zA-Z]+)-([0-9a-zA-Z]+)\.html$ /search.php?mots=$1 $2 $3 $4 $5[L]
RewriteRule ^([0-9a-zA-Z]+)-([0-9a-zA-Z]+)-([0-9a-zA-Z]+)-([0-9a-zA-Z]+)\.html$ /search.php?mots=$1 $2 $3 $4[L]
RewriteRule ^([0-9a-zA-Z]+)-([0-9a-zA-Z]+)-([0-9a-zA-Z]+)\.html$ /search.php?mots=$1 $2 $3[L]
RewriteRule ^([0-9a-zA-Z]+)-([0-9a-zA-Z]+)\.html$ /search.php?mots=$1 $2[L]

T'es certain qu'il te faut des espaces dans les URL ?

Jean-Luc

welcominh
Nouveau WRInaute
 
Messages: 38
Inscription: Jeu Juil 13, 2006 19:05

Message le Mar Sep 23, 2008 21:31

Merci pour ta contribution jeanluc. Mais ce que tu me donnes est euh...une méthode "statique" non? N'est-il pas possible de faire cela avec une expression plutot qu'avec qu'une succession de règles?
Car en fait j'ai dit que ca ne dépassait pas en général 5 mots, mais cela peut être plus, tout dépend de ce que les gens cherchent. Oui c'est un moteur de recherche que j'implémente, d'où le search.php et les mots clés.
Je ne fais que demander confirmation hein. Je ne remets pas du tout en cause ta solution, qui marche dans 97% des cas.

Merci bien.

Edit: ah oui, j'oubliais. Oui, il y a bien des espaces entre chaque mot dans l'URL. Ce n'est pas une faute de frappe.

Vap
WRInaute accro
WRInaute accro
 
Messages: 1090
Inscription: Dim Juin 17, 2007 20:12

Message le Mer Sep 24, 2008 10:41

Il faut utiliser de la récursivité pour n'utiliser qu'une règle :
http://www.webmaster-hub.com/publicatio ... rsive.html

Mais il y a un problème, avec une règle de réécriture tu ne pourra pas crééer d'URL avec des espaces dedans...


jeanluc
WRInaute accro
WRInaute accro
 
Messages: 2661
Inscription: Lun Mai 03, 2004 14:48

Message le Mer Sep 24, 2008 10:50

Vap a écrit:Mais il y a un problème, avec une règle de réécriture tu ne pourra pas crééer d'URL avec des espaces dedans...
Il devrait pouvoir les remplacer par des %20.

Jean-Luc

Vap
WRInaute accro
WRInaute accro
 
Messages: 1090
Inscription: Dim Juin 17, 2007 20:12

Message le Mer Sep 24, 2008 11:08

jeanluc a écrit:
Vap a écrit:Mais il y a un problème, avec une règle de réécriture tu ne pourra pas crééer d'URL avec des espaces dedans...
Il devrait pouvoir les remplacer par des %20.

Jean-Luc


Peut etre, je n'ai pas testé. Mais une règle telle que celles ci desous ne marchera pas a cause de l'espace entre $1 et $2 :

Code: Tout sélectionner
RewriteRule ^([0-9a-zA-Z]+)-([0-9a-zA-Z]+)\.html$ /search.php?mots=$1 $2[L]


Effectivement, la forme suivante marche peut etre, c'est à tester:


Code: Tout sélectionner
RewriteRule ^([0-9a-zA-Z]+)-([0-9a-zA-Z]+)\.html$ /search.php?mots=$1%20$2[L]


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 :

Consultez la description détaillée des produits ou services de Google suivants : Google Website Optimizer

  • Analyseur de densité
    Cet outil vous permet de calculer l'indice de densité d'un mot-clé d'une page web. Il est calculé à la fois pour la balise TITLE, la balise META description et l'ensemble du texte de la page.
  • Tester l'indexation récente d'un site dans Google
    Cet outil vous permet de connaître une estimation de l'ancienneté d'un site : il fournit la date à laquelle Google l'a indexé la première fois (et la même chose pour archive.org).


Qui est en ligne

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