Messages: 20167

Enregistré le: 16 Déc 2005

Message le Jeu Mar 09, 2017 10:36

Bonjour,

Comme à chaque fois que je me frotte au .htaccess, ça coince...

Mon problème du jour :

Je souhaite rediriger une famille d'URL (environ 25 000) :

Code: Tout sélectionner
motquelconque_nnn_texte.php vers autremotquelconque_nnn_texte.php


'nnn' (entier entre 1 et 25000) et 'texte' ne changent pas.

Je sais réecrire une famille d'URL, rediriger une URL unique, mais pas rediriger une famille d'URL.

Comment faire ?

Merci d'avance,

Michaël
Haut
11 Réponses
Messages: 20167

Enregistré le: 16 Déc 2005

Message le Ven Mar 24, 2017 12:35

Re: Redirection d'une famille d'URL

Bonjour,

Je remonte le sujet, merci !

Michaël
Haut
Messages: 12242

Enregistré le: 23 Nov 2005

Message le Ven Mar 24, 2017 14:34

Re: Redirection d'une famille d'URL

A tester :

Code: Tout sélectionner
RewriteRule ^motquelconque_([0-9]+)_([a-zA-Z]+).php http://www.example.com/autremotquelconque_$1_$2.php? [QSA,R=301,L]
Haut
Messages: 2904

Enregistré le: 8 Avr 2011

Message le Ven Mar 24, 2017 15:33

Re: Redirection d'une famille d'URL

Et en redirigeant en php ? de cette façon c’est comme si tu redirigeais un seul lien non ?
Quand tu arrives sur une page qui doit être redirigée, tu fais ta redirection mais uniquement par rapport a cette page et non pas à toute une famille d'URL.

@UsagiYojimbo : je pense que c'est l'inverse (c'est "texte" qui est fixe) :

Code: Tout sélectionner
RewriteRule ^([a-zA-Z]+)_([0-9]+)_texte).php http://www.example.com/$1_$2_texte.php? [QSA,R=301,L]


mais je ne sais pas si la solution de UsagiYojimbo fonctionne :)
Haut
Messages: 20167

Enregistré le: 16 Déc 2005

Message le Ven Mar 24, 2017 17:07

Re: Redirection d'une famille d'URL

Merci à vous.

D'après ce que je comprends de vos réponses, il s'agit de réécriture d'URL, pas de redirection.

motquelconque_nnn_texte.php restera vu par Google et autres comme une page existante.
Ce que je chercher à faire, c'est que le .htaccess renvoie vers l'autre adresse.

Ou alors il y a un truc que je ne comprends pas (et c'est fort possible !!! ) ;)
Haut
Messages: 12242

Enregistré le: 23 Nov 2005

Message le Ven Mar 24, 2017 20:32

Re: Redirection d'une famille d'URL

Non non, ma proposition redirige (regarde les flag utilisé, notamment R=301).

J'avais mal lu, donc. Si c'est la première partie seulement qui change (ce que tu as appelé mot) :

Code: Tout sélectionner
RewriteRule ^([a-zA-Z0-9]+)_chiffre_texte.php http://www.example.com/$1_chiffre_texte.php? [QSA,R=301,L]
Haut
Messages: 20167

Enregistré le: 16 Déc 2005

Message le Sam Mar 25, 2017 9:30

Re: Redirection d'une famille d'URL

Bonjour,

Merci pour ta réponse.
J'ai mal formulé ma demande, mais je vais essayé d'adapter.
En effet, nnn et texte sont variables. Je vais ajouter des $2 et $3 pour voir...
Haut
Messages: 20167

Enregistré le: 16 Déc 2005

Message le Sam Mar 25, 2017 9:41

Re: Redirection d'une famille d'URL

Re,

Via des bidouilles et sur la base de vos conseils, j'ai un truc qui fonctionne avec ça :

Code: Tout sélectionner
RewriteRule ^toto_([0-9])(.*)\.php$ tata_$1$2.php [QSA,R=301,L]


Merci,

Michaël
Haut
Messages: 1438

Enregistré le: 11 Déc 2012

Message le Sam Mar 25, 2017 16:00

oui ca marche parce que le deuxième séparateur _ est compris dans (.*) après les chiffres donc c'est dans $2 sinon la façon stricte :
Code: Tout sélectionner
RewriteRule ^toto_([0-9])_(.*)\.php$ tata_$1_$2.php [QSA,R=301,L]
Haut
Messages: 20167

Enregistré le: 16 Déc 2005

Message le Sam Mar 25, 2017 19:54

Ah oui.
Ca veut dire que si le deuxième élément commence par un chiffre, ça va faire n'importe quoi, non ?
Je vais corriger.
Merci
Haut
Messages: 1438

Enregistré le: 11 Déc 2012

Message le Sam Mar 25, 2017 20:30

en fait si j'ai bien compris depuis le début, tu n'as pas besoin de 2 trucs puisque c'est juste le début qui change, tu n'as qu'à écrire :
Code: Tout sélectionner
RewriteRule ^toto_(.*)\.php$ tata_$1.php [QSA,R=301,L])
Haut
Messages: 20167

Enregistré le: 16 Déc 2005

Message le Dim Mar 26, 2017 21:23

Oui c'est évident en plus !
Merci
Haut