Aller au contenu

url rewriting: j'en peux plus!........


Sujets conseillés

salut à tous,

cela fait plusieurs jours que je cherche à mettre en place pour mon site le rewriting de mes url et je ne m'en sort pas... j'ai lu, parcouru, epluché les sites et forums et fait mille essais et je ne trouve pas la solution: AU SECOURS! :gueule:

je vous explique mon cas: j'ai fait faire un site de e-commerce par quelqu'un qui aujourd'hui m'a planté car il a plié sa boite, donc je me debrouille tant bien que mal avec mes petites connaissances pour faire fonctionner le site, et j'y suis arrivé. Mais j'ai remarqué que le site n'était pas du tout fait pour faciliter le référencement car les url integrent les variables et cela donne : " www.monsite.com/index.php?rayon=A01&famille=NU&blablabla..."

j'ai mis dans le .htaccess les

"Options +FollowSymLinks

RewriteEngine on

RewriteRule ^([A-Za-z0-9]{3})_([A-Za-z]{2})\.html$ /index.php?rayon=$1&famille=$2 [L]"

mais la ou ça pose pb, c'est que je ne peux pas changer et remplacer tous les liens dans le code source vu qu'ils (les liens) ne sont pas statiques, mais font appel à des variables presque systematiquement (du genre: <a href=\"index.php?rayon=$ref_rayon&$ref_famille\">

ce que j'aimerai obtenir, c'est une url du genre www.monsite.com/textile-pantalon.html

pouvez vous eclairer ma lanterne?? je tourne en rond et je suis désespéré....HELP :huh:

merci de votre aide.

ps: apres verifs, mon hebergeur accepte le mod_rewriting (mutualisé ovh)

Lien vers le commentaire
Partager sur d’autres sites

bonjour,

Si tu est capable dans ton code de générer une url du style:

<a href="http://www.monsite.com/index.php?param1=<?php echo $param1;?>&param2=<?php echo $param2;?>">

rien ne t'empèche de faire

<a href="http://www.monsite.com/<?php echo $param1;?>/<?php echo $param2;?>.html">

Tu peux aussi créer un tableau avec tes urls non rewrités et tes url rewrités et faire le remplacement dynamiquement (j'utilise cette technique pour rewriter des sites gerés par un CMS ou des forums).

exemple (code à mettre dans ton index.php):

$urls=array('url1',...,'urln'); //liste des urls non rewrités
$rewrite=array('rewrite1',...,'rewriten'); //liste des urls rewrités

ob_start();
.
.
.
.
$contenu = ob_get_contents();
ob_end_clean();
echo preg_replace($url, $rewrite, $contenu );

Tu met entre ob_start et ob_get_contents tous le code qui contient les urls à tranformer (tu peux aussi mettre tout le code de index.php).

voilà! ;)

Lien vers le commentaire
Partager sur d’autres sites

merci fandecine!!!!!!!!

je vais faire l'essai, bien que je n'ai pas assez de connaissances pour savoir si je suis capable de mettre en place tout ça sans faire de betisse... mais je vais essayer tout de même et je te tiens au courant.

en tous cas je suis vraiment content que tu ais pris le temps de repondre: merci, merci, merci!!!!........... :yoot::yoot:

Lien vers le commentaire
Partager sur d’autres sites

En fait, il faut que tes tableaux $url et $rewrite reprennent le contenu de tes régles de rewrite du htacces.

Le script que je t'indique permet de remplacer les urls non rewrités par les urls rewrités, c'est tout. Il ne dispense en aucun cas de définir ces règles dans le htaccess.

Lien vers le commentaire
Partager sur d’autres sites

ok merci,

j'ai inseré le script dans index.php comme indiqué et j'ai ceci en warning: "preg_replace(): Delimiter must not be alphanumeric or backslash in /home/monsite/www/index.php on line 614

tu peux m'aider s'il te plait?

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...