Redirection d'une page dynamique vers une page dynamique

WRInaute discret
Bonjour, j'ai un prob pour faire une redirection 301. je vous explique.

J'ai au départ, développé une page php de la forme (une page pour chaque galerie en faite...) :

Code:
bidule.php?image=23

J'ai ensuite développé une unique page permettant de générer la page en fonction de la catégorie passée en paramètre. J'ai donc maintenant une page de la forme.

Code:
visionneuse-images.php?section=bidule&image=23

Que j'ai rewritté de la sorte :

Code:
visionneuse-bidule-image23.html

en utilisant l'expression : 

RewriteRule ^visionneuse-([a-zA-Z]+-?[a-zA-Z]+)-image([0-9]+)\.html$ /musikimage/visionneuse-images.php?section=$1&image=$2 [L]

Vous me suivez toujours? :wink: ...on arrive à la fin....

Ce que cherche a faire maintenant, c'est de faire pointer (rewritter) mes pages d'origines (bidule.php?image=23) vers visionneuse-bidule-image23.html. J'ai donc fais l'expression :

Code:
RewriteRule ^bidule.php\?image=([0-9]+)$ visionneuse-bidule-image$1.html [R=301,L]

Mais ça ne fonctionne pas... Erreur 404...

Help please... Je vous en serais très reconnaissant...

EDIT : le prob vient surment du fait que j'essaie de rewritter une page dynamique vers une autre page dynamique... c'est possible quand même non?
 
WRInaute occasionnel
Il faut peut etre rewriter non pas vers visionneuse-bidule.... mais vers /musikimage/visionneuse-image.php?...

?
 
WRInaute occasionnel
L'URL Rewriting ne travaille pas directement sur les paramètres de la requête, c'est à dire que dans ton cas la règle est comparée à bidule.php et pas bidule.php?image=23. Donc il faut bricoler un peu :
Code:
RewriteRule ^bidule\.php$ %{QUERY_STRING} [C]
RewriteRule image=([0-9]+) http://www.example.com/visionneuse-bidule-image$1.html [R=301]
 
WRInaute occasionnel
Euh, jamais vu faire comme tu nous l'indiques ici, nikoshr... Je serais curieux d'apprendre que ça fonctionne.

Normalement, c'est plutot comme ça :
Code:
RewriteCond %{QUERY_STRING} ^image=(\d+)$
RewriteRule ^bidule.php$ http://www.example.com/visionneuse-bidule-image%1.html [R=301]
 
WRInaute occasionnel
Ca revient au même. Je chaîne deux réécritures (flag C), la première n'étant appliquée (au sens de transformation définitive) que si la seconde règle est satisfaite. Juste pour varier le style :)
 
WRInaute discret
Je viens de le tester et c'est ok... C'est nikoshr qui avait raison apparement car ton code ChezThierry me retourne une erreur 404 m'annoncant que le fichier bidule.php n'existe pas...

Le petit prob now, c'est qu'il me rewritte l'url comme ca :

Code:
visionneuse-bidule-image32.html?image=32

Comment faire pour qu'il ne rajoute pas ?image=32 à la fin de cette url?
 
WRInaute occasionnel
Code:
RewriteRule ^bidule\.php$ %{QUERY_STRING} [C]
RewriteRule image=([0-9]+) http://www.example.com/visionneuse-bidule-image$1.html? [R=301]
? au bout de la redirection
 
WRInaute discret
Merci beaucoup... j'ai enfin résolu mes problèmes... Google va pouvoir mettre à jour mes URL... Je vous tire mon chapeau pour vos bons conseils et résolutions...

Encore merci
 
Nouveau WRInaute
de mon côté j'ai essayé d'utiliser cette redirection pour les variables de session de mon forum phpbb pour rediriger vers les pages réécrites et du coup ça me redirige automatiquement vers l'accueil du site.

Code:
RewriteRule ^viewtopic.php$ %{QUERY_STRING} [C]
RewriteRule t=([0-9]+)&sid=([0-9]+) http://forum.mondomaine/ftopic$1.html? [R=301]

Il y a donc en consultant le suiveur d'en-tête :
Une 301 correcte de viewtopic.php?t=111&sid=111
vers -http://forum.mondomaine/ftopic111.html
mais il y a du coup une 302 de ftopicxx.html vers la page d'index !!
 
WRInaute discret
Bonjour,

je rencontre également un petit soucis de redirection sur mon annuaire. Auparavant, mes pages étaient rewriter de la manière suivante:

Code:
RewriteRule ^site-(.+)\.html$ /site.php?number_id=$1 [L]
Se qui donnait une adresse comme : http://www.monsite.com/site-8300.html

J'ai maintenant ajouté des mots clés dans les url et le code est maintenant :

Code:
RewriteRule ^(.+)\-(.+)\.html$ /site.php?titre_url=$1&number_id=$2 [L]
Ce qui donne maintenant : http://www.monsite.com/mes-mots-clés-8300.html

Mon problème est que je souhaiterai redirigé automatiquement et en permanent les adresses http://www.monsite.com/site-8300.html vers http://www.monsite.com/mes-mots-clés-8300.html pour que les moteurs de recherche réindexent les nouvelles pages.

Pourriez-vous m'aider à ce sujet?

Merci.
 
Discussions similaires
Haut