Jump to content

Recommended Posts

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 :)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 ?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 !

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 !

Share this post


Link to post
Share on other sites

@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...

Share this post


Link to post
Share on other sites

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 !

Share this post


Link to post
Share on other sites

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]

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 ...

Share this post


Link to post
Share on other sites

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 :)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Je t'ai envoyer un MP pour te permettre l'acces au site !

 

Merci :)

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

Hop !

Ca aurait été trop simple :P

 

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 ! :)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 :)

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 ??

Share this post


Link to post
Share on other sites

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 ! :)

Share this post


Link to post
Share on other sites

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).

Share this post


Link to post
Share on other sites

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;
}

  • Like 1

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Bonjour richo

 

Tu a essayé

RedirectPermanent 62-telephone-portable http://www.ephoneaccess.com/62-telephoneportable

 

cdlt

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Bonjour;

La solution c'est de mettre

RewriteRule ^mon-anicein_cat$ http://www.site.com/nouveau-cat [L,NE,R=301]

Merci

Share this post


Link to post
Share on other sites

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...

Share this post


Link to post
Share on other sites

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 by makinero (see edit history)

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More