Aller au contenu

Sujets conseillés

Posté

Bonjour



Je dois effectuer la migration d'un site actuellement sous Dotclear vers une nouvelle installation sous Prestashop.



Le site actuel est bien référencé avec de nombreux mots-clés, et comporte environ 350 pages indexées. J'ai commencé l'intégration de la boutique dans un répertoire temporaire, qui sera déplacé à la racine quand tout fonctionnera... et que j'aurai trouvé le moyen de rediriger les anciennes pages.



Et c'est là que réside ma question : comme je ne vois pas de moyen simple de faire correspondre automatiquement les anciennes URLs et les nouvelles, je ne peux pas utiliser une règle de réécriture générique. Je me suis résigné à faire une redirection permanente pour chaque URL. Mais ça va faire dans les 350 lignes, et je ne sais pas quel impact ça aura sur le serveur, car le fichier .htaccess est lu à chaque requête..



Avez-vous des expériences similaires et une solution ?


Posté

si le serveur tourne bien, 350 c'est pas excessif.


autre solution, à la fin du .htacces, si ce n'est pas un fichier ou repertoire existant, tout renvoyer vers un fichier php, qui fera ces 350 redirections, et renverra une erreur 404 pour le reste.


Posté

Merci pour vos réponses.



Dan, je viens de consulter la doc pour RewriteMap, mais c'est un peu ardu pour un béotien. Aurais-tu un exemple simple à me montrer pour m'indiquer la voie ?


Posté

Donne-nous quelques exemples d'URLs (anciennes URLs et leur correspondance dans le nouveau site) que je puisse te donner un exemple concret et adapté à ton cas.



Il faudra que tu aies accès au fichier de config Apache ou au VirtualHost parce que cela ne peut pas fonctionner dans un .htaccess !


Posté

C'est bien ce que je craignais, j'avais cru comprendre qu'il fallait déclarer le RewriteMap dans le vhost, et tu me le confirmes. Merci.



Or je n'ai pas accès à ces fichiers de configuration, le site est sur un petit serveur mutualisé.



Il ne me reste que le .htaccess avec 350 lignes ou une redirection par PHP. Saurais-tu me dire laquelle de ces deux options serait la moins gourmande pour le serveur ?


Posté

Bien sûr que ça fonctionne... et bien même !


Mais il faut avoir accès au fichier de config apache, donc avoir un serveur dédié.


Posté

Bonsoir,



Ca m'intéresse pour un site que je dois reprendre (j'ai à peu près la même problèmatique que ClaireDeLune). J'ai regardé la doc apache ca à l'air pas mal ;-)



Est-ce que cela consomme beaucoup de ressources ? par exemple pour 300 correspondance ID -> ID (ou path).



Merci


Nicolas


Posté

Franchement, ça consomme peu de ressources. Surtout pour 300 redirections.

Posté

Pour résumer

Les formats d'URL différents ne me permettent pas d'utiliser une directive RewriteRule à base d'expressions régulières, et étant de plus sur un hébergement mutualisé, je n'ai pas accès aux fichiers de configuration vhosts du serveur, et ne peux donc pas utiliser de directive RewriteMap.

Il ne me reste qu'à établir à la main la correspondance pour chaque ancienne URL vers la nouvelle, et ma question est de savoir quelle méthode utiliser pour pénaliser le serveur aussi peu que possible. Mes options semblent être les suivantes :

1) insérer mes 350 redirections permanentes dans le .htaccess à la racine, l'inconvénient évident étant que ce fichier sera lu à chaque requête vers le serveur, mais est-ce beaucoup réellement pour une formule perso chez OVH ?

2) définir dans mon .htaccess à la racine une page 404 avec un script php qui se charge de rediriger chaque URL non connue de prestashop vers une des nouvelles pages

3) modifier la page d'erreur 404 de prestashop pour qu'elle intègre les redirections en y ajoutant une détection de l'URL demandée, si c'est possible

Merci encore

Posté

Bonjour



Je reviens vous tenir au courant, j'ai en effet trouvé une solution intéressante, si ça peut servir à d'autres.



À la suite des réflexions inspirées par vos réponses, j'étais parti pour créer un fichier de redirections en PHP, appelé dans l'index.php avant le fichier de configuration, avec un tableau pour les correspondances en fonction de $_SERVER['REQUEST_URI'].



Mais en fait, il existe un module pour Prestashop qui prend soin de ce type de problème et permet, dans l'interface d'administration, de créer ces redirections, avec un choix sur le code renvoyé, dans mon cas toujours 301. Cerise sur le gâteau, on peut y importer un fichier *.csv avec la liste des URLs, ce qui est simple à constituer à partir de sitemaps.



Le module est payant, mais j'ai trouvé que ça en valait le coup ;)


  • 2 semaines plus tard...

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...