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

Nouveau WRInaute
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.
 
Nouveau WRInaute
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
 
WRInaute accro
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>
 
Nouveau WRInaute
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
 
Nouveau WRInaute
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!
 
WRInaute accro
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.
 
Nouveau WRInaute
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.
 
Nouveau WRInaute
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 &&...
 
Nouveau WRInaute
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:
 
Nouveau WRInaute
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:
 
Discussions similaires
Haut