Récupérer une expression qui se répète plusieurs fois
6 messages • Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
Récupérer une expression qui se répète plusieurs fois
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:
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.
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.
Essaie ceci:
T'es certain qu'il te faut des espaces dans les URL ?
Jean-Luc
- 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
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.
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.
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...
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 a écrit:Il devrait pouvoir les remplacer par des %20.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...
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]
6 messages • Page 1 sur 1
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 :
- PR Weaver en test en avant-première
- Développer un outil avec la Google API
- Sandbox, blacklistage et autres pénalités de Google
- Connaitre son PageRank sans la Google Toolbar...
- Référencement : faut-il abandonner les balises META ?
- Comment éviter de se faire voler son nom de domaine...
- Moteurs de recherche : la bataille des alliances fait rage
- Google API : guide de développement de l'API Google
- Les informations de la Google Toolbar
- Google se lance dans la recherche de blogs
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



le forum