Nouvelle url contient plus de variables que l'ancienne

  • Auteur de la discussion Auteur de la discussion phab
  • Date de début Date de début
Nouveau WRInaute
Bonjour à tous,
J'essaie de faire court, ma nouvelle url contient une variable de plus que l'ancienne.
Comment alors faire un redirect (si cela est possible) de l'ancienne vers la nouvelle ?

Anciennes url:
RewriteRule ^interview/(.*)/(.*)$ /bande-annonce-content-interview.php?product_title=$1&title=$2 [L]

Nnouvelle url souhaité:
RewriteRule ^interview/(.*)/(.*)/(.*)$ /bande-annonce-content-interview.php?name=$1&product_title=$2&title=$3 [L]

J'avoue avoir tenté beaucoup de choses, mais sans succès.
Je m'en remet au public ^^

Merci d'avance pour votre aide.
 
WRInaute accro
Si tu ne donne pas l'url de départ (celle des liens visible par les internautes) tu ne risque pas d'avoir des réponses ;-)
 
WRInaute accro
ça confirme que je comprend pas bien l'histoire ... :? j'avais fouillé un peu sur ton www pour voir mais je n'avais rien trouvé.

RewriteRule ^interview/(.*)/(.*)/(.*)$ /bande-annonce-content-interview.php?name=$1&product_title=$2&title=$3 [L]

ne peut pas "fonctionner" car l'url que tu présente a deux niveau de dossier (a partir d'interview) au lieu de trois comme ta règle le laisse supposer.

interview/(.*)/(.*)/(.*)

interview/fast-furious-6/relation-entre-les-acteurs-du-film
peux tu expliquer ce que sont tes paramètres a récupérer. C'est peut être moi qui suit pas réveillé mais je ne voie pas bien a quoi ça correspond dans l'url que tu souhaite réécrire.
 
Nouveau WRInaute
Bonjour zeb,

Ce que je veux faire (depuis le début) c'est remplacer le nom du film par le nom de l'invité:
"interview/fast-furious-6/relation-entre-les-acteurs-du-film"
à:
"interview/paul-walker/relation-entre-les-acteurs-du-film"

Alors comment faire un redirect 301 permanent de :
RewriteRule ^interview/(.*)/(.*)/(.*)$ /bande-annonce-content-interview.php?product_title=$2&title=$3 [L]
vers :
RewriteRule ^interview/(.*)/(.*)/(.*)$ /bande-annonce-content-interview.php?name=$1&title=$3 [L]

Merci d'avance,
Phab
 
WRInaute accro
C'est exactement le meme regex, donc je vois pas comment tu px faire avec .htaccess.
 
WRInaute accro
Outre le fait que tu perd tes urls d'origine ce qui n'est JAMAIS un bon plan, tu ne peut en effet pas faire la différence entre ta structure 1 et la 2 en revanche il suffit que ton script n'utilise pas le même champ (ou la même requête sql) pour sélectionner le contenu dans la base et c'est réglé.
 
Nouveau WRInaute
Désolé zeb, je suis perdu après ta dernière remarque:
en revanche il suffit que ton script n'utilise pas le même champ (ou la même requête sql) pour sélectionner le contenu dans la base et c'est réglé

Pourrais-tu s'il te plait être plus précis concernant ce dernier point.

Merci d'avance,
Phab
 
WRInaute accro
Bah ton url fait appel à un même script et tu souhaite via ta réécriture faire figurer le nom du film par l'invité, il suffit donc de modifier le script pour que l'affichage évolue comme tu le souhaite et changer toutes tes urls avec le nom de l'invité mais pas celui du film. La règle du htaccess ne change pas c'est le script qui fait plu le même travail.
 
Nouveau WRInaute
Oui, dans le html, je remplace simplement ma variable "titre" par celle du "nom", effectivement cela n'était pas un problème, tout fonctionne sans plus d'effort d'ailleurs ^^

Mais les anciennes urls (celles avec le titre) arrivent également à afficher cette même page...
C'est là que je en sais pas comment faire pour que la page ne s'affiche qu'avec le "nom".

Peut-être faire un test dans le header de la page en question et faire un en php un redirect 301 permanent ?
Qu'en penses-tu ?
 
Nouveau WRInaute
Voici ce que j'obtiens avec ma méthode précédente en testant la réponse du serveur:
HTTP/1.1 301 Moved Permanently
Server: Apache
Set-Cookie: PHPSESSID=ncs5v7cceouda1j6kmd7hsq2i4; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Status: 301 Moved Permanently
Location: /interview/paul-walker/relation-entre-les-acteurs-du-film
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
Date: Sun, 19 May 2013 15:52:51 GMT
Connection: keep-alive

En résumé, dans la page, je teste la variable qui est passée en get.
Si elle correspond au nom, c'est ok.
Si elle correspond au titre, je fais un redirect 301 permanent.

Est-ce que cette solution te semble "propre" ou envisageable en l'état ?

Merci d'avance,
Phab
 
WRInaute accro
ça semble bon même si je comprend pas bien pourquoi tu décide de changer tes urls ....
 
Discussions similaires
Haut