[Résolu] Redirection d'une famille d'URL

Discussion dans 'URL Rewriting et .htaccess' créé par OTP, 9 Mars 2017.

  1. OTP
    OTP Modérateur
    Inscrit:
    16 Décembre 2005
    Messages:
    20 160
    J'aime reçus:
    0
    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:
    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
     
  2. OTP
    OTP Modérateur
    Inscrit:
    16 Décembre 2005
    Messages:
    20 160
    J'aime reçus:
    0
    Re: Redirection d'une famille d'URL

    Bonjour,

    Je remonte le sujet, merci !

    Michaël
     
  3. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    12 463
    J'aime reçus:
    13
    Re: Redirection d'une famille d'URL

    A tester :

    Code:
    RewriteRule ^motquelconque_([0-9]+)_([a-zA-Z]+).php http://www.example.com/autremotquelconque_$1_$2.php? [QSA,R=301,L]
    
     
  4. noren
    noren WRInaute accro
    Inscrit:
    8 Avril 2011
    Messages:
    2 927
    J'aime reçus:
    2
    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:
    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 :)
     
  5. OTP
    OTP Modérateur
    Inscrit:
    16 Décembre 2005
    Messages:
    20 160
    J'aime reçus:
    0
    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 !!! ) ;)
     
  6. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    12 463
    J'aime reçus:
    13
    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:
    RewriteRule ^([a-zA-Z0-9]+)_chiffre_texte.php http://www.example.com/$1_chiffre_texte.php? [QSA,R=301,L]
    
     
  7. OTP
    OTP Modérateur
    Inscrit:
    16 Décembre 2005
    Messages:
    20 160
    J'aime reçus:
    0
    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...
     
  8. OTP
    OTP Modérateur
    Inscrit:
    16 Décembre 2005
    Messages:
    20 160
    J'aime reçus:
    0
    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:
    RewriteRule ^toto_([0-9])(.*)\.php$ tata_$1$2.php [QSA,R=301,L]
    Merci,

    Michaël
     
  9. FortTrafic
    FortTrafic WRInaute passionné
    Inscrit:
    11 Décembre 2012
    Messages:
    1 456
    J'aime reçus:
    9
    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:
    RewriteRule ^toto_([0-9])_(.*)\.php$ tata_$1_$2.php [QSA,R=301,L]
     
  10. OTP
    OTP Modérateur
    Inscrit:
    16 Décembre 2005
    Messages:
    20 160
    J'aime reçus:
    0
    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
     
  11. FortTrafic
    FortTrafic WRInaute passionné
    Inscrit:
    11 Décembre 2012
    Messages:
    1 456
    J'aime reçus:
    9
    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:
    RewriteRule ^toto_(.*)\.php$ tata_$1.php [QSA,R=301,L])
     
  12. OTP
    OTP Modérateur
    Inscrit:
    16 Décembre 2005
    Messages:
    20 160
    J'aime reçus:
    0
    Oui c'est évident en plus !
    Merci