iwebu Posted December 13, 2018 Share Posted December 13, 2018 Bonjour à tous Suite à la refonte d'un site, anciennement sous prestashop 1.4 et désormais sous prestashop 1.6, je rencontres des difficultés à mettre en place les redirections 301 dans le fichier .htaccess. Chose qui ne pose jamais de problème d'habitude sur n'importe quel site. Voici le contenue de mon .htaccess : Redirect 301 /index.php?id_manufacturer=14&controller=manufacturer http://ventedestylo.com/23_monteverde # ~~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> <IfModule mod_env.c> SetEnv HTTP_MOD_REWRITE On </IfModule> RewriteEngine on #Domain: ventedestylo.com RewriteRule . - [E=REWRITEBASE:/] RewriteRule ^api$ api/ [L] RewriteRule ^api/(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L] # Images RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L] RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L] 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] 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] 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] 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] 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] 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] RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L] RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L] # AlphaImageLoader for IE and fancybox RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L] # Dispatcher RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L] </IfModule> AddType application/vnd.ms-fontobject .eot AddType font/ttf .ttf AddType font/otf .otf AddType font/woff2 .woff2 AddType application/x-font-woff .woff <IfModule mod_headers.c> <FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|svg)$"> Header set Access-Control-Allow-Origin "*" </FilesMatch> </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 J'ai bien placé la redirection en haut du fichier .htaccess comme j'ai pu le lire un peu partout. Mais il ne se passe rien, rien du tout ! Dans cet exemple, j'ai pris l'url http://ventedestylo.com/index.php?id_manufacturer=14&controller=manufacturer que l'on trouve dans les résultats Google et qui devrait aujourd'hui pointer vers http://ventedestylo.com/23_monteverde. La redirection semble pourtant correcte mais il ne se passe absolument rien ! Redirect 301 /index.php?id_manufacturer=14&controller=manufacturer http://ventedestylo.com/23_monteverde J'ai lu ici et là qu'il fallait mettre un "?" à la fin de la nouvelle url, mais je n'ai jamais mis ça sur d'autres sites et ça fonctionne très bien... Merci beaucoup pour votre aide !! Link to comment Share on other sites More sharing options...
Mediacom87 Posted December 13, 2018 Share Posted December 13, 2018 Bonjour, rajoutez avant : <IfModule mod_rewrite.c> <IfModule mod_env.c> SetEnv HTTP_MOD_REWRITE On </IfModule> RewriteEngine on Link to comment Share on other sites More sharing options...
iwebu Posted December 13, 2018 Author Share Posted December 13, 2018 2 minutes ago, Mediacom87 said: Bonjour, rajoutez avant : <IfModule mod_rewrite.c> <IfModule mod_env.c> SetEnv HTTP_MOD_REWRITE On </IfModule> RewriteEngine on Bonjour Merci pour votre réponse. Ce bout de code est bien présent un peu plus bas dans le .htaccess. Mais étant donné que ma redirection est placée en haut, je l'ai ajouté avant pour un faire un test... et toujours rien. Je ne comprends vraiment pas pourquoi. Y t'il une option à cocher dans l'administration de prestashop ou autre ? C'est un peu gênant car les url des marques ne sont plus les mêmes et du coup les liens encore présent dans les résultats de google ne sont pas bons. Link to comment Share on other sites More sharing options...
doekia Posted December 13, 2018 Share Posted December 13, 2018 il n'est pas possible de rediriger les QUERY_STRING de cette manière. Elles ne font pas partie de l'url Par ailleurs le / de début n'est jamais présent dans un .htaccess Soit: RewriteCond %{QUERY_STRING} id_manufacturer=14&controller=manufacturer RewriteRule .* http://ventedestylo.com/23_monteverde [R=301,L,QSD] ou RewriteCond %{REQUEST_URI} /index.php?id_manufacturer=14&controller=manufacturer RewriteRule .* http://ventedestylo.com/23_monteverde [R=301,L,QSD] Perso je ferai ceci RewriteCond %{QUERY_STRING} id_manufacturer=14 RewriteCond %{QUERY_STRING} controller=manufacturer RewriteRule index.php /index.php?controller=manufacturer&id_manufacturer=23 [QSD,L] Link to comment Share on other sites More sharing options...
iwebu Posted December 14, 2018 Author Share Posted December 14, 2018 11 hours ago, doekia said: il n'est pas possible de rediriger les QUERY_STRING de cette manière. Elles ne font pas partie de l'url Par ailleurs le / de début n'est jamais présent dans un .htaccess Soit: RewriteCond %{QUERY_STRING} id_manufacturer=14&controller=manufacturer RewriteRule .* http://ventedestylo.com/23_monteverde [R=301,L,QSD] ou RewriteCond %{REQUEST_URI} /index.php?id_manufacturer=14&controller=manufacturer RewriteRule .* http://ventedestylo.com/23_monteverde [R=301,L,QSD] Perso je ferai ceci RewriteCond %{QUERY_STRING} id_manufacturer=14 RewriteCond %{QUERY_STRING} controller=manufacturer RewriteRule index.php /index.php?controller=manufacturer&id_manufacturer=23 [QSD,L] Bonjour Merci pour cette réponse. J'ai testé les trois solution et aucune ne fonctionne, elles provoquent même une erreur : Mais peut être que je n'ai pas inséré tes règles au bon endroit. Peux tu m'indiquer où les ajouter dans le .htaccess ? Merci. Link to comment Share on other sites More sharing options...
doekia Posted December 14, 2018 Share Posted December 14, 2018 à l'intérieur d'un bloc <IfModule mod_rewrite.c> RewriteEngine On ... </IfModule> En tête de fichier, avant la section prestashop. Mais pour connaître la cause vraie, pas de peut-être, lire ton log serveur Link to comment Share on other sites More sharing options...
iwebu Posted December 14, 2018 Author Share Posted December 14, 2018 2 hours ago, doekia said: à l'intérieur d'un bloc <IfModule mod_rewrite.c> RewriteEngine On ... </IfModule> En tête de fichier, avant la section prestashop. Mais pour connaître la cause vraie, pas de peut-être, lire ton log serveur Merci encore ! Je viens d'essayer comme ceci : <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{QUERY_STRING} id_manufacturer=14&controller=manufacturer RewriteRule .* http://ventedestylo.com/23_monteverde [R=301,L,QSD] </IfModule> # ~~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> <IfModule mod_env.c> SetEnv HTTP_MOD_REWRITE On </IfModule> RewriteEngine on #Domain: ventedestylo.com RewriteRule . - [E=REWRITEBASE:/] RewriteRule ^api$ api/ [L] RewriteRule ^api/(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L] # Images RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L] RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L] 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] 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] 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] 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] 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] 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] RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L] RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L] # AlphaImageLoader for IE and fancybox RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L] # Dispatcher RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L] </IfModule> AddType application/vnd.ms-fontobject .eot AddType font/ttf .ttf AddType font/otf .otf AddType font/woff2 .woff2 AddType application/x-font-woff .woff <IfModule mod_headers.c> <FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|svg)$"> Header set Access-Control-Allow-Origin "*" </FilesMatch> </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 Mais ça ne fonctionne pas non plus toujours la même erreur. Je vais voir pour essayer de voir les logs serveur mais je ne suis pas sure d'y avoir accès. Merci. Link to comment Share on other sites More sharing options...
iwebu Posted December 14, 2018 Author Share Posted December 14, 2018 @doekia Voici les dernières lignes du logs que j'ai pu constater ... est ce en rapport ? Sinon j'ai plusieurs types de logs lequel faut il regarder en ce qui me concerne ? Encore merci pour ton aide. 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