Aller au contenu
Clair de Lune

Redirections vers des URLs aux formats différents

Noter ce sujet :

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 ?


Partager ce message


Lien à poster
Partager sur d’autres 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.


Partager ce message


Lien à poster
Partager sur d’autres sites

Ou alors utiliser RewriteMap ;)

Partager ce message


Lien à poster
Partager sur d’autres 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 ?


Partager ce message


Lien à poster
Partager sur d’autres 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 !


Partager ce message


Lien à poster
Partager sur d’autres 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 ?


Partager ce message


Lien à poster
Partager sur d’autres 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é.


Partager ce message


Lien à poster
Partager sur d’autres 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


Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres 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

Partager ce message


Lien à poster
Partager sur d’autres 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 ;)


Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×