De Posted September 20, 2011 Share Posted September 20, 2011 Bonjour à tous, J'ai un problème avec la redirection permanente dans le htaccess. Je veux rediriger un produit désactivé vers un autre produit, je mets donc ceci dans le htaccess : RedirectPermanent /categorie/1-mon-ancien-produit.html /categorie/2-mon-nouveau-produit.html Le problème c'est que la redirection donne ceci : http://www.mon-site.com/categorie/1-mon-nouveau-produit.html?id_product=1 "?id_product=1" est rajouté automatiquement ce qui fait que je tombe de nouveau sur une page d'erreur ("le produit n'existe plus") Est-ce que quelqu'un a une idée ? Merci d'avance Link to comment Share on other sites More sharing options...
Tchupa Posted September 21, 2011 Share Posted September 21, 2011 Bonjour, je serais a ta place je ferais plutôt une 301. Redirect 301 /categorie/1-mon-ancien-produit.html http://www.mon-site.com/categorie/2-mon-nouveau-produit.html Link to comment Share on other sites More sharing options...
De Posted September 22, 2011 Author Share Posted September 22, 2011 Bonjour, je serais a ta place je ferais plutôt une 301. Redirect 301 /categorie/1-mon-ancien-produit.html http://www.mon-site.com/categorie/2-mon-nouveau-produit.html Merci pour le conseil Tchupa, en revanche cela ne change rien au problème... J'aimerais comprendre ce qui rajoute ce code en fin d'URL ? Link to comment Share on other sites More sharing options...
Tchupa Posted September 22, 2011 Share Posted September 22, 2011 Essaie de régénérer ton htaccess pour voir si c'est pas déjà fait car c'est bizarre la forme d'url que tu obtiens. Sinon hésite pas a poster ton htaccess ici qu'on puisse voir ce qu'il contient exactement. Link to comment Share on other sites More sharing options...
cybeardjm Posted November 27, 2011 Share Posted November 27, 2011 Bonjour, j'ai le même souci avec un ?id_product= qui apparait apres la redirection... Suite a un cafouillage dans la sauvegarde d'un produit, j'ai du le recreer par copie. Ainsi, http://www.uvva.fr/s...rete-8j-7n.html est devenu http://www.uvva.fr/s...rete-8j-7n.html càd, l'ID produit a changé de 8 en 11. La boutique est un sous-dossier /shop/. En racine du site, il y a un blog WordPress. Les 2 applis ont chacune leur .htaccess, celui de PrestaShop étant généré automatiquement. J'ai donc créé une redirection 301/permanent de l'ancienne page vers la nouvelle. Mais systématiquement, le résultat s'affiche ainsi : http://www.uvva.fr/s...ml?id_product=8 Où l'on voit que l'ID de l'ancien produit est rajouté en fin du nom de la nouvelle page, ce qui cause une nouvelle erreur. Cela provient peut-être de ces lignes du .htaccess de PrestaShop généré automatiquement, mais je ne vois pas pourquoi : RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*\.html /shop/product.php?id_product=$1 [QSA,L] ou RewriteRule ^[a-zA-Z0-9-]*/([0-9]+)\-[a-zA-Z0-9-]*\.html /shop/product.php?id_product=$1 [QSA,L] à moins que le QSA ne joue un rôle fort dans ce cas précis. J'ai donc testé l'emplacement de ma ligne de redirection # Produit supprime - DJM - 27112011 Redirect 301 /shop/8-decouverte-de-la-crete-8j-7n.html http://www.uvva.fr/shop/11-decouverte-de-la-crete-8j-7n.html # End à divers endroits de mes 2 .htaccess, mais rien n'y fait, j'ai toujours l'apparition du ?id_product= avec l'ID de l'ancien produit qui apparait... Idem avec Redirect 301 /shop/8-decouverte-de-la-crete-8j-7n.html http://www.uvva.fr/shop/product.php?id_product=11 ou Redirect 301 /shop/product.php?id_product=8 http://www.uvva.fr/shop/product.php?id_product=11 Et là, je sèche... ayant déjà passé plusieurs heures à chercher des idées constructives sur le forum et autres sites... Voilà si qq'un avait une étincelle, je le remercie d'avance... Sincerely @cybearDJM Link to comment Share on other sites More sharing options...
cybeardjm Posted November 27, 2011 Share Posted November 27, 2011 Je complète mon test. J'ai transformé RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*\.html /shop/product.php?id_product=$1 [QSA,L] en RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*\.html /shop/product.php?id_product=$1 [L] en supprimant donc QSA (pour Query String Append - Query String ajouté en fin d'expression). L'URL résultante est toujours http://www.uvva.fr/shop/11-decouverte-de-la-crete-8j-7n.html?id_product=8 Mais cette fois, la page cible s'affiche au lieu de me donner une page "produit indisponible" comme précédemment, comme si la query-string n'était plus prise en compte. Question : quel impact cela aura-t-il sur le reste du fonctionnement du site ? Question subsidiaire : le .htaccess est-il mis "en cache" par le serveur ou y-a-t-il une forme de latence entre la sauvegarde des modifications et leur prise en compte. Après avoir supprimé les lignes de ma redirection, elle a continué à fonctionner... ??? Sincerely @cybearDJM Link to comment Share on other sites More sharing options...
doekia Posted December 2, 2011 Share Posted December 2, 2011 Pas de latence, une modif .htaccess est vu immédiatement par le serveur (sauf peut-être sur certains gros clusters - mais on parle de secondes), par contre comme tu as fait une redirection en 301 (Redirect permanent) ton navigateur a détecté la condition et s'est dit que tu étais bête de demander cette page qu'il sait avoir été déplacé de manière permanente ailleurs, donc il a directement émis la nouvelle adresse en demande - vérifie avec l'onglet Réseau de Firebug Link to comment Share on other sites More sharing options...
xavier1977 Posted January 7, 2012 Share Posted January 7, 2012 Bonjour, Je relance ce post car j'ai cherché une solution sur le forum dans tous les sens et je ne trouve aucune réponse. Donc, moi aussi, un paramètre "?id_product=484" est ajouté après la nouvelle adresse http://www.monsite.com/ma-nouvelle-page.html ce qui amène une page introuvable. Merci pour votre aide ! Link to comment Share on other sites More sharing options...
xavier1977 Posted January 7, 2012 Share Posted January 7, 2012 J'ai trouvé une solution qui fonctionne : il suffit d'ajouter un point d'interrogation à la fin de l'URL de destination dans le fichier htaccess Link to comment Share on other sites More sharing options...
Szed Posted January 27, 2012 Share Posted January 27, 2012 Hello ! Je me permet d'up le topic pour une question a propos des 301 ! Je n'arrive pas à appliquer une simple 301. Pour faire un test, j'ai essayé de rediriger un produit vers un autre (la boutique est en phase de prod donc pas de soucis de référencement, je peux faire des tests). Mais entre les erreurs 500, l'URL Rewriting, etc, je suis un peu perdu ! J'arrive a rediriger mon produit vers google par exemple, mais pas vers une autre URL de ma boutique : O J'ai essayer ceci : Redirect 301 /14-ancien-produit.html http://www.ndd.fr/product.php?id_product=18 ou ceci : Redirect 301 /14-ancien-produit.html /18-nouveau-produit.html Ou encore plein d'autre possibilité, avec les NDD complet (http://NDD.fr/fr/14-...du-produit.html) par exemple, avec ou sans la rééctiture d'URL, mais rien ! Un conseil ? : ) Merci ! Link to comment Share on other sites More sharing options...
doekia Posted January 29, 2012 Share Posted January 29, 2012 @Szed: 1/ Connaitre ton hébergeur. 2/ Les erreurs 500 proviennent de syntaxe non reconnues/erreurs vérifier tes logs bruts d'erreurs 3/ Est-ce que les url simplifiées fonctionnent au moins sur ton site? 4/ Vérifier l'url à rediriger... Link to comment Share on other sites More sharing options...
Szed Posted January 30, 2012 Share Posted January 30, 2012 Hello ! Alors, le tout sera hébergé chez OVH. Ok pour les erreurs 500, j'avais bien vu que ca apparaissaient lorsque je mettais mon code la ou il ne fallait pas. Les URL simplifiées fonctionnent tres bien sur la boutique. Et l'URL a redirigé fonctionne tres bien également, vu que le produit existe bien. Je crois que c'est un souci de placement de mon code peut être. Et, est-ce que je dois redirigé vers l'URL simplifié, ou l'URL classique du produit ? Est-ce que je dois placer mes redirections avant le code de prestashop qui s'occupe de l'url rewriting, ou apres, par exemple ? Merci ! Link to comment Share on other sites More sharing options...
doekia Posted January 30, 2012 Share Posted January 30, 2012 Placer ton code avant et depuis le BO Repliquer la directive RewriteEngine On en premier L'url brute si tu termine ta règle avec un [L,QSA] Si url simplifiée terminer la règle par [N,QSA] Avec ça tu devrais être au point RewriteEngine On RewriteRule ^/14-ancien-produit.* /15-nouveau-produit [R=301,N,QSA] RewriteRule ^/(..)/14-ancien-produit.* /$1/15-nouveau-produit [R=301,N,QSA] Link to comment Share on other sites More sharing options...
Szed Posted January 31, 2012 Share Posted January 31, 2012 Hello ! Merci de la réponse ! Mais, ça n'a pas beaucoup marché x) Voila ce que j'ai dans mon générateur, dans le BO. RewriteEngine On RewriteRule ^/14-ancien-produit.* /15-nouveau-produit [R=301,N,QSA] RewriteRule ^/(..)/14-ancien-produit.* /$1/15-nouveau-produit [R=301,N,QSA] RewriteCond %{HTTP_HOST} !^www.mondomaine.fr$ RewriteRule ^(.*) http://www.mondomaine.fr/$1 [QSA,L,R=301] En remplaçant, ancien-produit, et nouveau-produit, par les bonne valeurs, et en essayant avec les url brute avec L,QSA., rien n'y fait :/ Cela peut il venir de mes deux dernières lignes ? Elles sont la pour redirigé le mondomaine.fr vers www.mondomaine.fr Link to comment Share on other sites More sharing options...
doekia Posted January 31, 2012 Share Posted January 31, 2012 C'est 14 et 15 que tu as ajusté? Le reste n'est que fioriture d'ailleur c'est RewriteRule ^/14-.* /15-nouveau-produit [R=301,N,QSA] RewriteRule ^/(..)/14-.* /$1/15-nouveau-produit [R=301,N,QSA] Qu'il faut mettre ... Link to comment Share on other sites More sharing options...
Szed Posted January 31, 2012 Share Posted January 31, 2012 Aucun changement Les id et url des produits sont bon pour mon test. Cela peut venir d'un système de cache ? Ou d'autre chose ? Merci Link to comment Share on other sites More sharing options...
doekia Posted January 31, 2012 Share Posted January 31, 2012 Url de ton site. Vérifie les entête retournées par le serveur. Le cache n'a rien a voir ici, éventuellement le temps de synchronisation du cluster mais c'est de l'ordre des 10 secondes normalement - sauf quand ça merde Link to comment Share on other sites More sharing options...
Szed Posted January 31, 2012 Share Posted January 31, 2012 Je t'ai envoyer un MP pour te permettre l'acces au site ! Merci Link to comment Share on other sites More sharing options...
doekia Posted January 31, 2012 Share Posted January 31, 2012 Oopsy comme on dit. J'avais laissé trainer un / en début des règles... le bon code est donc: RewriteEngine On RewriteRule ^14-.*\.html$ /18-vetement-lumineux.html [R=301,N,QSA] RewriteRule ^(..)/14-.*\.html$ /$1/18-vetement-lumineux.html [R=301,N,QSA] J'avais aussi oublié de filtrer en html (cela aurait été gênant avec certaines catégories) Link to comment Share on other sites More sharing options...
Szed Posted January 31, 2012 Share Posted January 31, 2012 Grand merci a toi ! Link to comment Share on other sites More sharing options...
Szed Posted January 31, 2012 Share Posted January 31, 2012 Hop ! Ca aurait été trop simple RewriteRule ^PBSCProduct.asp?ItmID=666666$ /14-nouveau-produit.html [R=301,N,QSA] RewriteRule ^(..)/PBSCProduct.asp?ItmID=666666$ /$1/14-nouveau-produit.html [R=301,N,QSA] Ce la ne signifie pas : "Des qu'il y a dans l'URL PBSCProduct.asp?ItmID=666666, tu redirige sur /14-nouveau-produit.html" ? Ou il y a une nuance avec le .asp? au milieu de l'URL source ? Merci ! Link to comment Share on other sites More sharing options...
doekia Posted January 31, 2012 Share Posted January 31, 2012 Il y a une nuance car ici tu as une query string... Et le query string ne fait pas a proprement parler de l'url. Il te faut "astucer" le système # Old catalog redirection RewriteCond %{QUERY_STRING} ItmID=([^&]*) [NC] RewriteRule ^PBSCProduct\.asp$ /legacy/%1 [C,QSA,E] RewriteRule ^legacy/14$ /3-soins-du-visage/8-lait-de-toilette.html? [N,R=301] RewriteRule ^legacy/13$ /3-soins-du-visage/10-lotion-tonique-asteingeance-renforce.html? [N,R=301] RewriteRule ^legacy/17$ /3-soins-du-visage/11-lotion-tonique-peau-seche.html? [N,R=301] On commence par ré-écrire la query string dans l'url Puis on redirige l'url forgé vers le bon produit. ATTENTION le répertoire legacy ne DOIT PAS exister Link to comment Share on other sites More sharing options...
Szed Posted February 1, 2012 Share Posted February 1, 2012 Bonjour ! Dans ton exemple ci dessus, sur les 3 lignes d'exemples, les 14, 13, et 17, correspond a l'ItmID de l'URL que l'on cherche a rediriger ? PBSCProduct.asp?ItmID=14 redirigerez vers /3-soins-du-visage/8-lait-de-toilette.html? Si j'ai compris correctement, ça ne fonctionne pas J'avoue ne pas réussir à comprendre pourquoi Link to comment Share on other sites More sharing options...
doekia Posted February 2, 2012 Share Posted February 2, 2012 Oui ta compréhension est bonne. Ça ne marche pas je pense car j'ai fait un gros copié/collé sans vérif, remplace le [C,QSA,E] par [N,QSA,E] il me semble. Link to comment Share on other sites More sharing options...
Szed Posted February 2, 2012 Share Posted February 2, 2012 C'est parfait ! Merci beaucoup ! Link to comment Share on other sites More sharing options...
Melusine Posted February 9, 2012 Share Posted February 9, 2012 Bonjour Même soucis sur mon site, j'ai fais des redirection via le htaccess mais ça me donne des erreurs 404 alors que l'adresse de redirection est correcte... Voici un essai de redirection : Redirect permanent /modules/blockadvancesearch/advancesearch.php?manufacturer=23 http://NOM_BOUTIQUE/23_ablo RedirectPermanent /modules/blockadvancesearch/advancesearch.php?category=158 http://NOM_BOUTIQUE/158-les-offres-promotionnelles Une idée d'où ça peut venir ? Cordialement Mélusine Link to comment Share on other sites More sharing options...
Melusine Posted February 13, 2012 Share Posted February 13, 2012 Petit up please EDIT : J'ai créer des dossiers pour tester les redirections, lorsque ceux-ci sont à la racine ça fonctionne : Redirect permanent /a10 http://NOM_BOUTIQUE/a11 mais quand ils sont dans le dossier de modules ça ne marche plus : Redirect permanent /a1 http://NOM_BOUTIQUE/modules/a2 Une idée ?? Link to comment Share on other sites More sharing options...
Melusine Posted February 20, 2012 Share Posted February 20, 2012 Vraiment personne ??.... Link to comment Share on other sites More sharing options...
Szed Posted March 6, 2012 Share Posted March 6, 2012 Hello ! Petit up du topic, pour un nouveau petit problème. J'ai un autre type de redirection 301 que je n'arrive pas à faire fonctionner. L'ancien site avait pour URL par exemple : http://www.mondomaine.com/t-shirt-rouge.htm J'aimerais la faire rediriger vers : http://www.mondomaine.com/fr/25-t-shirt-rouge.html Mais quelques test ne sont pas concluants x) RewriteRule ^t-shirt-rouge\.htm$ /25-t-shirt-rouge.html? [N,QSA,E] Merci ! Link to comment Share on other sites More sharing options...
Szed Posted March 7, 2012 Share Posted March 7, 2012 Hello, petit up ! J'ai effectué d'autre test, mais rien de concluant. x) Y a t'il quelque part un tuto expliquant les redirections 301 chez Prestashop ? Nottament l'explication des informations entre crochet à la fin des ligne ([N,QSA,E] par exemple). Link to comment Share on other sites More sharing options...
lordexquisit Posted March 7, 2012 Share Posted March 7, 2012 Bonjour Voilà quelque chose qui pourrait t'aider: http://www.javascriptkit.com/howto/htaccess.shtml C'est en anglais mais çà peut être utile. Link to comment Share on other sites More sharing options...
Melusine Posted March 29, 2012 Share Posted March 29, 2012 Bonjour Je reviens vers vous car j'ai finalement trouvé une solution, ça vous aidera peut-être ! J'ai fait mes redirection via PHP finalement, ne trouvant pas pourquoi elles ne fonctionnais pas via le htaccess, voici la syntaxe : switch ($_SERVER['REQUEST_URI']) { case '/modules/blockadvancesearch/advancesearch.php?caract_10=599': header('Location: http://NOM_BOUTIQUE/fr/s/2066/alessi-a-tempo'); break; case '/modules/blockadvancesearch/advancesearch.php?caract_10=419': header('Location: http://NOM_BOUTIQUE/fr/s/2067/alessi-adagio'); break; } 1 Link to comment Share on other sites More sharing options...
richo Posted June 11, 2012 Share Posted June 11, 2012 Bonjour, j'ai essayé toutes les combinaisons proposé sur ce site, mais apparemment ca e semble pas fonctionner :-/ j'ai 5 pages a redirigé, la 1ere fonctionne, mais les autres non. voici celle qui fonctionne : RedirectPermanent http://www.ephoneaccess.com/76-iphone-occassion http://www.ephoneaccess.com/76-iphone4-occassion et celle qui ne fonctionne pas : RedirectPermanent http://www.ephoneaccess.com/62-telephone-portable http://www.ephoneaccess.com/62-telephoneportable Merci de votre aide. Link to comment Share on other sites More sharing options...
Melusine Posted June 11, 2012 Share Posted June 11, 2012 Bonjour richo Tu a essayé RedirectPermanent 62-telephone-portable http://www.ephoneaccess.com/62-telephoneportable cdlt Link to comment Share on other sites More sharing options...
richo Posted June 11, 2012 Share Posted June 11, 2012 Oui, j'ai naturellement essayé, mais j'ai exactement la meme chose. j'ai meme essayé en desactivant l'ecriture d'url ... RedirectPermanent /category.php?id_category=5 http://www.ephoneaccess.com/category.php?id_category=6 Link to comment Share on other sites More sharing options...
Melusine Posted June 12, 2012 Share Posted June 12, 2012 Bonjour Richo Si tu regarde ce post : http://www.prestashop.com/forums/index.php?/topic/130901-redirection-permanente-par-htaccess/page__view__findpost__p__750861 Tu verra que moi aussi j'ai eu des soucis avec les redirections tels que "/category.php?id_category=5". J'ai dû les faire en PHP du coup .. Tu a essayé en PHP (voir post #32) Link to comment Share on other sites More sharing options...
zied.ellouze Posted October 5, 2012 Share Posted October 5, 2012 Bonjour; La solution c'est de mettre RewriteRule ^mon-anicein_cat$ http://www.site.com/nouveau-cat [L,NE,R=301] Merci Link to comment Share on other sites More sharing options...
SeFi Posted January 14, 2014 Share Posted January 14, 2014 J'ai trouvé une solution qui fonctionne : il suffit d'ajouter un point d'interrogation à la fin de l'URL de destination dans le fichier htaccess J'ai le même problème et cette "solution" ne m'a pas aidé à la résoudre... Link to comment Share on other sites More sharing options...
makinero Posted October 21, 2014 Share Posted October 21, 2014 (edited) J'ai trouvé la solution pour rediriger des URLs avec des paramètres get. Pour rediriger http://www.monsite.com/product.php?id=312300&type=4&lg=fr&number=11 vers http://www.monsite.com/ma-categorie/mon-produit mettre ceci TOUT AU DEBUT DU HTACCESS : RewriteCond %{REQUEST_URI} ^/store/product.php$ RewriteCond %{QUERY_STRING} ^id=312300&type=4&lg=fr&number=11$ RewriteRule ^.*$ http://www.monsite.com/ma-categorie/mon-produit? [L,R=301] Le point d'interrogation à la fin de la ligne de l'url de destination est important car il permet de ne pas rajouter les paramètres GET à la fin de la nouvelle URL. Edited October 21, 2014 by makinero (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now