Réécriture d'url de résultats de recherche

Résolu/Fermé
Ericb2038 Messages postés 3 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 5 janvier 2011 - 5 janv. 2011 à 11:31
Ericb2038 Messages postés 3 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 5 janvier 2011 - 5 janv. 2011 à 16:05
Bonjour,

Mon problème est le suivant :

soit :
- un formulaire de recherche simple dans lequel l'internaute tape sa recherche

pour l'affichage de la page de résultats je voudrais pouvoir générer une url du type
http://monsite.com/recherche/premier-terme-recherché-2e-terme-recherché/
(etc)

générer "premier-terme-recherché-2e-terme-recherché", etc dans l'url d'appel,
ça je vais savoir faire, mais c'est pour la redirection que je sèche un peu.

J'imagine qu'on doit pouvoir le faire dans un .htaccess via des redirections
apache un peu rusées, mais je ne vois pas trop comment.. Quelqu'un aurait une idée ?

(en fait, j'ai vu ce principe fonctionner quelque part et j'ai un client qui me le réclame :))

Merci par avance,

Eric
A voir également:

2 réponses

Aprexia Messages postés 82 Date d'inscription vendredi 17 décembre 2010 Statut Membre Dernière intervention 14 mai 2013 24
5 janv. 2011 à 11:43
Bonjour,

Je ne comprend pas bien le but de la question.
Tu veux que les variables soit passées dans l'adresse c'est ça?

utilise la même redirection que d'habitude, et place tes variables dans un $_GET["taVariable"].

elles seront automatiquement placées dans l'url de ta page de destination.
0
Ericb2038 Messages postés 3 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 5 janvier 2011
Modifié par Ericb2038 le 5/01/2011 à 16:09
Non en fait, je veux que mes variables composent l'URL

http://monsite.com/recherche/ce-que-l-utilisateur-a-tape-dans-le-champ-de-recherche

(c'est pour un client malade de SEO (cela dit je trouve ça très con, dans la mesure ou les bots de des moteurs ne vont pas eux faire de recherche, mais bon, on discute pas avec le client....))

Et en fait, j'ai trouvé comment faire :

mon formulaire appelle :
un dosearch.php dont le code est :

$search='';  

$search.=preg_replace("/\ /","-",trim($_POST['recherche']));  
header("Location: /recherche/".$search) ;



qui redirige donc vers /recherche/la-chaine-tapée-par-l'internaute

Pour interpréter cette url,

dans mon .htaccess j'ai des conditions de réécriture :

RewriteEngine On   
# RewriteBase /  

RewriteRule ^recherche/([A-Za-z0-9-]+)/?$ resultatrecherche.php  


qui renvoient tout ce qui commence par "recherche/" vers resultatrecherche.php

et resultatrecherche.php récupère les termes de recherche comme ça :


//nettoyage du préfixe "/recherche/ "  
$search = preg_replace("/\/recherche\//","",$_SERVER['REQUEST_URI'] );  

// retransforme les "-" en espaces   
$search = preg_replace("/-/"," ", $search );  

//traiter la recherche  
et à partir de là on peut traiter normalement...  



Là où je coinçais c'était pour trouver exactement comment écrire la RewriteRule, elles ne sont pas spécialement intuitives à écrire, surtout quand elles comportent des "/" au milieu :)

j'ai fini par trouver la réponse là :

http://www.addedbytes.com/for-beginners/url-rewriting-for-beginners/

Merci en tous cas :)
0