Benjbe Posted August 2, 2013 Share Posted August 2, 2013 (edited) Bonjour, Après de multiples tests et recherche sur le web, je me résous à poster sur le forum en espérant trouver un peu d'aide. Voilà mon souci : Je viens de refaire mon site et j'ai opté pour prestashop 1.5.4. Précédemment mon site utilisait la solution ECWID. J'aimerais donc rediriger les internautes et les moteurs vers les nouvelles pages. Seulement les url issues de ECWID sont de la forme : - www.mon-site.com/#!/~/product/category=5236246&id=21751603 (pour un produit) - www.mon-site.com/#!/~/category/id=2846266&offset=0&sort=addedTimeDesc (pour une catégorie) A priori je dois faire une redirection pour chacune des pages dans le fichier .htaccess. J'ai tester sans succès : RedirectPermanent www.mon-site.com/#!/~/product/category=5236246&id=21751605 www.mon-site.com/alimentaire/335-confiture-fruits-des-bois-au-genepi.html Comment dois-je faire ? Dois-je utiliser une méthode de réécriture en utilisant RewriteCond et RewriteRule ? Merci d'avance à tous. Edited August 2, 2013 by Benjbe (see edit history) Link to comment Share on other sites More sharing options...
JF Référenceur Posted August 5, 2013 Share Posted August 5, 2013 Il me semble que c'est: RewriteRule ^AncienneURLsansledomaine NouvelleURLsansledomaine [R=301,L] Link to comment Share on other sites More sharing options...
Benjbe Posted August 7, 2013 Author Share Posted August 7, 2013 Bonjour, Merci pour ta réponse. J'ai essayé avec ta solution sans succès... Ci-dessous mon .htaccess, je dois surement me tromper dans la syntaxe ou le placement ... # ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution # http://www.prestashop.com - http://www.prestashop.com/forums <IfModule mod_rewrite.c> SetEnv PHP_VER 5 RewriteEngine on RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule . - [E=REWRITEBASE:/] RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L] # Images RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1-$2$3$4.jpg [L] RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule ^([0-9]+)\-([0-9]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1-$2$3.jpg [L] RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L] RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L] RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L] RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L] RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L] RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L] RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L] RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L] RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L] RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L] # Dispatcher RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule ^.*$ - [NC,L] RewriteCond %{HTTP_HOST} ^www.mon-site.com$ RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L] RewriteRule ^www.mon-site.com/#!/~/product/category=5236246&id=21751605 www.mon-site.com/alimentaire/335-confiture-fruits-des-bois-au-genepi.html [R=301,L] </IfModule> #If rewrite mod isn't enabled ErrorDocument 404 /index.php?controller=404 # ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again Link to comment Share on other sites More sharing options...
JF Référenceur Posted August 7, 2013 Share Posted August 7, 2013 Pour commencer je tiens à signaler à ceux qui liraient le sujet que cette personne a mis "www.mon-site.com" pour ne pas avoir à indiquer l'url de son site. C'est une pratique courante, mais tout le monde ne semble pas le savoir, donc je préfère le souligner. J'ai eu un cas similaire au vôtre, mais la structure d'url n'était pas tout à fait la même. Le souci est que la personne qui m'aide à la technique au bureau est en congés, donc je suis un peu limité. Je vous explique ma problématique et mes solutions, on devrait arriver à trouver ensemble en se passant des développeurs (ou pas ^^) J'avais un client sur une solution autre que prestashop et qui voulait migrer vers cette solution. La forme de ses urls était: www.monurldesite.com/produits/REFERENCEPRODUIT-nom-du-produit.html Il voulait passer vers la structure d'url de prestashop suivante: www.monurldesite.com/ID-nom-du-produit.html (nous avons volontairement retiré le dossier catégorie des urls, c'est une vision SEO, tout le monde ne la partagera pas) Nous avons donc créé un dossier "produits" sur le serveur, et collé dans ce dossier un fichier .htaccess contenant ceci: <IfModule mod_rewrite.c> # URL rewriting module activation RewriteEngine on # URL rewriting rules RewriteRule ^REFERENCEPRODUIT/.*$ /ID-nom-du-produit.html [R=301,L] (ceci url par url, il y a 3000 lignes en tout, mais nous avons automatisé la génération des url avec un script) Je serais donc tenté de vous conseiller de tester en créant des dossiers et sous-dossiers (/#!/~/product/) et dans 'product' mettre un fichier htaccess de redirections. Cette manipulation permettra de conserver le fichier .htaccess de prestashop "intact" et plus léger. Link to comment Share on other sites More sharing options...
Benjbe Posted August 7, 2013 Author Share Posted August 7, 2013 Merci. Je pense que l'idée est bonne malheureusement le dossier contenant le symbole ~ "ramène" au dossier racine... Je vois pas trop de solution à mon problème du coup... Link to comment Share on other sites More sharing options...
JF Référenceur Posted August 7, 2013 Share Posted August 7, 2013 Je vais tester sur un de mes serveurs demain. Au pire, vous avez une solution la semaine prochaine quand notre tech reviendra tout bronzé! Link to comment Share on other sites More sharing options...
Benjbe Posted August 7, 2013 Author Share Posted August 7, 2013 Merci beaucoup pour votre aide. Je vais continuer aussi de mon coté sait-on jamais. Link to comment Share on other sites More sharing options...
Benjbe Posted August 13, 2013 Author Share Posted August 13, 2013 Bonjour JF Référenceur, Je ne suis pas parvenu a une solution, avez-vous pu voir avec votre technicien s'il avait une réponse à mon problème ? Merci par avance. Link to comment Share on other sites More sharing options...
JF Référenceur Posted August 13, 2013 Share Posted August 13, 2013 Non, j'ai été un peu dépassé par le travail, mais je vous promets de lui demander demain! Link to comment Share on other sites More sharing options...
JF Référenceur Posted August 14, 2013 Share Posted August 14, 2013 On a testé différente méthode sans trouver de solution. Le souci se situe au niveau du #, qui n'est pas transmis au serveur. On a essayé de ruser, mais sans trouver de solution. Je demande à d'autres personnes ce week end. Link to comment Share on other sites More sharing options...
Recommended Posts