Je n'arrive pas à faire certaines redirections par le .htaccess

Bonjour à tous!

Je n'arrive pas à faire certaines redirections par le .htaccess et ça me casse les c... pieds! :x

Dans ma console webmaster tools, dans "erreurs au niveau des URL" j'ai tout le temps des vielles URL qui réapparaissent sans cesse du type: http://www.monnomdedomaine.fr/index.php?controller=product?id_product=59

dans le .htaccess quand je fait:
Redirect permanent /index.php?controller=product?id_product=59 http://www.monnomdedomaine.fr/la-nouvelle-url

ça ne fonctionne pas!
J'ai aussi essayé en remplaçant les ? et = et _ par leurs valeurs %hexadécimales ça ne fonctionne pas non plus...

En plus je ne comprends pas pourquoi ces anciennes URL reviennent comme ça parce que quand je regarde où elles sont référencées, ça dit des pages de mon site où elles n'y sont plus depuis belle lurette!

si quelqu'un a une idée sur ce qu'il faut que je fasse, je suis preneur.
Merci par avance.
 
Bonjour,

merci de ta réponse mais rien ne fonctionne j'ai essayé de plusieurs manières mais rien y fait.

si quelqu'un a un bout de code... please
 
PHP:
<span class="syntaxdefault"></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br /></span><span class="syntaxkeyword">if&nbsp;(!empty(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'controller'</span><span class="syntaxkeyword">])&nbsp;&&&nbsp;</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'controller'</span><span class="syntaxkeyword">]&nbsp;==&nbsp;</span><span class="syntaxstring">'product'&nbsp;</span><span class="syntaxkeyword">&&&nbsp;!empty(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'id_product'</span><span class="syntaxkeyword">])&nbsp;&&&nbsp;</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'id_product'</span><span class="syntaxkeyword">]&nbsp;==&nbsp;</span><span class="syntaxdefault">59</span><span class="syntaxkeyword">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">$url&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">'http://www.monnomdedomaine.fr/la-nouvelle-url'</span><span class="syntaxkeyword">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Status:&nbsp;301&nbsp;Moved&nbsp;Permanently'</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">header</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Location:&nbsp;'&nbsp;</span><span class="syntaxkeyword">.&nbsp;</span><span class="syntaxdefault">$url</span><span class="syntaxkeyword">);<br />&nbsp;&nbsp;&nbsp;&nbsp;exit();&nbsp;&nbsp;&nbsp;&nbsp;<br />}&nbsp;</span><span class="syntaxdefault"></span>
 
Bonjour spout,

je dois le mettre où ce bout de code?

j'ai essayé en créant un dossier /index.php?controller=product?id_product=59

et à l'intérieur de ce dossier j'ai créé un fichier index.php avec ton code dedans mais ça n'a pas fonctionné...

merci de ton aide
 
j'ai essayé le code je l'ai mis à la fin de index.php et ça plante le site j'ai ce message:
Parse error: syntax error, unexpected '<' in /datas/vol3/w4a154655/var/www/discountgalaxy.fr/htdocs/index.php on line 30
punaise!
 
Si tu es déjà dans <?php, il ne faut pas ce <?php ... mais par contre ce serait préférable de faire ça tout au début du fichier.
 
Merci spout ça fonctionne!

c'est vrai qu'il y avait déjà le <php au début de index.php

donc ensuite je reproduit le même code pour toutes les URL du même type

aller go!

Encore merci, je reviens plus tard pour vous dire où j'en suis.
 
voilà j'ai réussis pas mal de redirections grâce à ton code,

mais il me reste encore 4 URL récalcitrantes:

/index.php?id_cms=11&controller=cms

/index.php?fc=module&module=vente_flash&controller=show&id=3?fc=module&module=vente_flash&controller=show&id=3

/module/vente_flash/show?id=20

/index.php?id_product=8&controller=product

pour la dernière j'ai essayé de modifier un peu ton code mais j'ai des erreurs de syntaxe à chaque fois avec les &&...
 
re:

j'ai réussi avec cette url:
/index.php?fc=module&module=vente_flash&controller=show&id=3?fc=module&module=vente_flash&controller=show&id=3

le code:
Code:
if (!empty($_GET['fc']) && $_GET['fc'] == 'module' && !empty($_GET['module']) && $_GET['module'] == 'vente_flash' && !empty($_GET['controller']) && $_GET['controller'] == 'show' && !empty($_GET['id']) && $_GET['id'] == 3) {
    $url = 'http://www.monnomdedomaine.fr/nouvelle-url';
    header('Status: 301 Moved Permanently');
    header('Location: ' . $url);
    exit();    
}

aller plus que 3 URLs récalcitrantes:
/index.php?id_cms=11&controller=cms

/module/vente_flash/show?id=20

/index.php?id_product=8&controller=product

:wink:
 
cool!
même code que dans le message ci-dessus en remplaçant 3 par 20 pour cette URL:

/module/vente_flash/show?id=20

par contre pour les 2 dernières URLs je bug... :oops:

/index.php?id_cms=11&controller=cms

/index.php?id_product=8&controller=product

:oops:
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut