Jump to content
Clair de Lune

Redirections vers des URLs aux formats différents

Rate this topic

Recommended Posts

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 ?


Share this post


Link to post
Share on other sites

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.


Share this post


Link to post
Share on other sites

Ou alors utiliser RewriteMap ;)

Share this post


Link to post
Share on other sites

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 ?


Share this post


Link to post
Share on other sites

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 !


Share this post


Link to post
Share on other sites

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 ?


Share this post


Link to post
Share on other sites

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


Share this post


Link to post
Share on other sites

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


Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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


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