Jump to content
Saluts92

Migration vers Prestahop - redirection 301 ancien site

Recommended Posts

Bonjour,

 

Je suis en train d'étudier la migration de mon site actuel (développé 100% sans CMS) vers prestashop v1.7.2.1.

Le nom de domaine ne change pas mais pratiquement toutes les URLS vont être modifiées pour coller au standard Prestashop, je dois donc faire des redirections 301 des anciennes vers les nouvelles pages

 

Je vais avoir environ 100000 redirection à faire.

 

J'ai bien peur qu'autant de lignes dans le fichier HTACCESS ne ralentisse mon site (?).  Y a t-il une solution meilleure qu'une autre pour gérer ce cas de figure ? si oui laquelle ?

 

D'avance merci pour vos futures réponses

 

Cdlt

Share this post


Link to post
Share on other sites

Déjà, oublie la version 1.7 et installe un 1.6

Ensuite, si t'es produits ont les mêmes identifiants sur l'ancien site et sur prestashop, tu devrais pouvoir faire une redirection avec expression régulière par type d'URL : produits, catégories, etc...

Share this post


Link to post
Share on other sites

pourquoi oublier v1.7 ?  alors que la migration 1.6 vers 1.7 demandera dans le futur beaucoup d'effort ?

 

pour les produits ce ne sera pas possible non plus étant donné que l'identifiant n'apparaitra plus dans l'URL  si j'utilise les URL simplifiées

Share this post


Link to post
Share on other sites

Parce que la version 1.7 est une merde absolue, mais je te laisse le plaisir de t'en rendre compte par toi même :)

Et avec l'url rewriting de PS, tu as quand même les ID de tes produits dans l'url. En 2009/2010, j'ai migré quelques sites osCommerce vers PrestaShop en conservant les ID, et en ayant juste deux 301 dans mon .htaccess : une pour les catégories, et une pour les produits

Share this post


Link to post
Share on other sites

Bonjour, je déterre ce topic de 2017. 

@Johann : Est-ce que tu peux me communiquer ta façon de faire pour faire les redirections de l'os Commerce vers Prestashop ? J'ai a peu prêt 6000 produits à rediriger avec leur catégories. Si tu as une solution efficace et rapide, je suis preneur :) 

 

Merci beaucoup pour ton retour, 

Bonne journée 

Share this post


Link to post
Share on other sites

Bonjour, 

En 2012 une agence m'a fait travailler sur les redirections consécutives à la migration de deux sites os commerce > PrestaShop.
Pour plusieurs raisons j'avais opté pour des redirections PHP mises en place via :
- Le développement d'un module de redirections qui est par la suite devenu celui vendu par smart-plugs et qui pouvait notamment, outre rediriger, récupérer les 404 "intéressantes" au cas ou nous aurions oublié des redirections.
- L'import dans ce module d'une liste de correspondance ancienne url <> nouvelle url, liste que j'avais obtenue via un script utilisant en particulier les tables oscommerce que j'avais ajoutées dans la base de données utilisée par PrestaShop.

Obtenir une telle liste n'avais pas été simple mais l'obligation de tout rediriger proprement avait imposé cette méthologie.

Si vous arrivez à conserver les ID des produits et des catégories une solution peut être en effet (a tester) de mettre en place une réécriture de type :

Shéma acienne url avec ID
réécrit en index.php?controller=product&id_product=ID

La redirection canonique de PrestaShop fera ensuite la redirection attendue.

 

Share this post


Link to post
Share on other sites

Hello, 

Merci de ta réponse rapide, 

Pour ma part cela donne :

mon url oscommerce est de type : http://url-oscommerce.fr/produit_18053

nouvelle : http://nouveausite.com/bien-etre-bio/18053-produit-5060099030970.html

 

J'ai tenter celà en htacces : 

#Domain: www.nouveausite.com
RewriteRule . - [E=REWRITEBASE:/]

# Redirections produits
RewriteCond %{HTTP_HOST} ^siteOscommerce.fr$
RewriteCond %{HTTP_HOST} ^siteOscommerce2.fr$
RewriteRule ^[a-zA-Z0-9-]*p-([0-9]+)\.html$ /index.php?id_product=$1&amp;amp;amp;amp;amp;controller=product [R=301]


# Redirection catégories
RewriteCond %{HTTP_HOST} ^siteOscommerce.fr$
RewriteCond %{HTTP_HOST} ^siteOscommerce2.fr$
RewriteRule ^[a-zA-Z0-9-]*-c-[0-9_]+_([0-9]+)\.html$ %{ENV:REWRITEBASE}redirect_cat.php?id_category=$1 [L]

#3 niveau
RewriteRule ^[a-zA-Z0-9-]*c-[0-9]+_[0-9]+_([0-9]+)\.html$ /redirect_cat.php?id_category=$1 [R=301]

#2 niveaux
RewriteRule ^[a-zA-Z0-9-]*c-[0-9]+_([0-9]+)\.html$ /redirect_cat.php?id_category=$1 [R=301]

#1 niveau
RewriteRule ^[a-zA-Z0-9-]*c-([0-9]+)\.html$ /redirect_cat.php?id_category=$1 [R=301]

Avec un redirect_cat.php : 

<?php
if(is_numeric($_GET['id_category'])) {
$psCatId=$_GET['id_category']+1;
}
else {
header("Status: 404 Not Found");
exit();
}

$url="http://".$_SERVER['HTTP_HOST']."/category.php?id_category=".$psCatId;
header("Status: 301 Moved Permanently", false, 301);
header("Location: ".$url);
exit();

 

Pour ma part j'ai importé 2Oscommerce dans un seul prestashop, donc il y a les produits du domaine principal et des 2 autres boutiques qui était des sous-domaine. 

Mais j'avoue qu'avec cette solution, je n'ai pas de redirection faites .. 

 

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