[redirection 301] Spécificités liés au site

WRInaute occasionnel
Bonsoir,

La société en charge du développement de notre site doit faire évoluer les URL pour des différents annuaires.

La structure actuelle : *http://www.divosea.com/fr/$categorie.html/s/$structure
(ex. http://www.divosea.com/fr/centres-de-plongee.html/s/sub-plongee-hyeres)

La structure à venir : *http://www.divosea.com/fr/centres-de-plongee/sub-plongee-hyeres.html
(ex. http://www.divosea.com/fr/centres-de-plongee/sub-plongee-hyeres.html)

J'ai cependant 2 questions...

1°) Quelle est le code que je dois ajouter dans mon .htaccess pour assurer l'URL rewriting qui convient et ne pas perdre le référencement actuel ?

2°) Ce code (dans le .htaccess) va-t-il s'appliquer uniquement aux annuaires ou y-t-il un effet de bord à prévoir ?

Merci d'avance pour votre aide !
 
WRInaute accro
Qu'est ce que ça a a voir avec les annuaires ?
Es-tu conscient que l'URL rewriting requiert également une intervention au niveau du script ?
 
WRInaute occasionnel
Bonjour HawEye,

Effectivement mon message n'est pas clair. Après une journée de boulot, ce n'est jamais bon de poster ce type de message :)

Quand je parle d'annuaire, je parle des annuaires présents sur DivOsea.com (annuaire des centres de plongée, annuaire des magasins de plongée, etc...)

Jeudi soir, la société en charge du développement va modifier la structure des URL des sociétés présentes dans ces annuaires. Afin de ne pas perdre le référencement, nous souhaitons mettre en place de l'URL-rewriting.

Par conséquent, que dois-je saisir dans mon fichier .htaccess ?

Merci d'avance pour votre aide.

Bonne journée,
 
WRInaute occasionnel
Bonjour Blount,

Merci pour ton message.
La société en charge du site, m'a tout juste communiqué la structure finale des URL; ce qui donne :

- actuel : *http://www.divosea.com/fr/centres-de-plongee.html/s/sub-plongee-hyeres
- futur : *http://www.divosea.com/fr/centres-de-plongee/m/s/sub-plongee-hyeres

Suite au code que tu m'as communiqué voici ce que j'ai écris :

Pour les "magasins de plon*gée" :
Code:
RewriteRule ^fr/(.*)\magasin-plongee.html/s/(.*) /fr/m/s/$1/$2 [L,R=301]

Pour les "clubs de plon*gée" :
Code:
RewriteRule ^fr/(.*)\club-de-plongee.html/s/(.*) /fr/m/s/$1/$2 [L,R=301]

Pour les "centres de plon*gée" :
Code:
RewriteRule ^fr/(.*)\centres-de-plongee.html/s/(.*) /fr/m/s/$1/$2 [L,R=301]

Ce code vous semble correct ?

Merci d'avance !
 
WRInaute impliqué
Est-ce qu'au moins, tu comprends ce que tu as écrit ?
C'est du genre : « J'ai rien compris, mais bon, ce n'est pas grave, ça marche. », comme on voit régulièrement.

Bref, ceci devrait aller :
Code:
RewriteRule ^(.*)\.html/(.*) /$1/m/$2 [L,R=301]
 
WRInaute occasionnel
Blount,

Merci pour ta réactivité. Effectivement, j'ai reprend dans l'urgence ce message et je n'ai pas pris le temps de comprendre l'ensemble du code que tu m'as fourni.

Si tu as encore quelques précieuses minutes à m'accorder, pourrais-tu m'expliquer ce code (notamment les $1 et $2) ?

Encore merci !
 
WRInaute impliqué
Dans la ligne de redirection, on met des expressions régulières pour créer un masque de sélection. Les parenthèses permettent de capturé des valeurs.
Avec les signes $1 et $2, on récupère ces valeurs. Le chiffre peut aller de 1 à 9, 1 correspondant à la première valeur, 2 à la seconde, et ainsi de suite.
 
WRInaute occasionnel
Blount,

Merci pour ces informations ! Content de comprendre un peu mieux comment cela fonctionne.

Pour y a-t-il un " \ " avant le .html ?

Bonne soirée.
 
WRInaute impliqué
Il n'y a pas un « \ » devant le « .html ». Il y a un « \ » devant le « . ».
Le point, dans une expression régulière, a une signification particulière. Celui-ci est interprété comme « n'importe quel caractère ». Ce qui signifie que si tu ne mets pas de « \ » devant, la redirection fonctionnera peu importe le caractère devant "html".

Pour indiquer qu'il faut considérer le point comme le caractère « point », il faut le « protéger » avec « \ ».
 
Discussions similaires
Haut