Redirection301 d'une page dynamique ?

Nouveau WRInaute
Bonjour,

après plusieurs recherches et tests, j'ai décidé de m'inscrire sur le forum, et de vous soumettre mon problème.

Lors de la création de mon site, j'ai effectué le test de mes pages avec des valeurs de test. Malheureusement, ces pages là ont été indéxé par Google. (page de type : index.php?page=valeur&id=valeur)

Depuis, j'ai créé un fichier htaccess avec dedans des définitions d'url rewritting pour mes pages.

Maintenant, je souhaiterais que mes pages de test dont certaines valeurs sont bonnes, soient redirigées sur une url de type défini dans le htaccess.

Or il s'agit d'url dynamique, et je n'ai pas trouvé de doc m'expliquant comment m'y prendre. A savoir aussi que chaque url sera redéfinie à la main.

Voici un exemple de ce que je souhaite :

www.musique-pop.net/?page=artiste&id=9 --> www.musique-pop/artiste/9-madonna.php

Je ne suis peut être pas très clair.. :roll:
Mais si quelqu'un connait la solution, je l'en remercie d'avance, sinon tout conseil ou aide est bienvenue :wink:

++
 
WRInaute passionné
la première règle ne marche pas. si tu as une règle de rewriting, il faut ajouter un paramètre "stop" pour éviter que ça boucle.
Code:
RewriteEngine on 
RewriteCond %{QUERY_STRING} ^page=artiste&id=9$
RewriteRule ^index\.php$ /artiste/9-madonna.php? [R=301,L]
RewriteRule ^(.*)/([0-9]+)-.*\.php$ /index.php?page=$1&id=$2&stop [L]
 
Nouveau WRInaute
Merci pour ta réponse.

Voici maintenant le contenu de mon htaccess :

RewriteEngine on

RewriteRule recherche.php /index.php?page=recherche [L]
RewriteRule partenaires.php /index.php?page=partenaires [L]
RewriteRule inscription.php /index.php?page=inscription [L]

RewriteCond %{QUERY_STRING} ^page=artiste&id=9$
RewriteRule ^index\.php$ /artiste/9-madonna.php? [R=301,L]
RewriteRule ^(.*)/([0-9]+)-.*\.php$ /index.php?page=$1&id=$2&stop [L]

Mon url rewriting marche bien, mais la redirection ne se fait pas ... :cry:
 
WRInaute passionné
il faut aussi prévoir un accès sans index.php :
Code:
RewriteEngine on

RewriteRule recherche\.php /index.php?page=recherche [L]
RewriteRule partenaires\.php /index.php?page=partenaires [L]
RewriteRule inscription\.php /index.php?page=inscription [L]

RewriteCond %{QUERY_STRING} ^page=artiste&id=9$
RewriteRule ^(index\.php)?$ /artiste/9-madonna.php? [R=301,L]
RewriteRule ^(.*)/([0-9]+)-.*\.php$ /index.php?page=$1&id=$2&stop [L]
 
Nouveau WRInaute
En effet :!: Ca marche nikel :D

Merci beaucoup !!

Une dernière petite chose éventuellement :

Suite à tes exemples, j'essaie de formater ces 3 lignes :

RewriteRule recherche\.php /index.php?page=recherche [L]
RewriteRule partenaires\.php /index.php?page=partenaires [L]
RewriteRule inscription\.php /index.php?page=inscription [L]

en 1 seule du genre :
RewriteRule ^([a-z]+)\.php$ /index.php?page=$1 [L]

Mais cela ne marche pas, c'est pourtant bien possible non?

En tout cas merci bien pour mon problème de redirection 301 :wink:
 
WRInaute passionné
Les règles sont évaluées de la première à la dernière. La première qui correspond est appliquée!
cette règle étant très générale il faut donc la mettre à la fin du .htaccess ou la mettre sous cette forme :
Code:
RewriteRule (recherche|partenaires|inscription)\.php /index.php?page=$1 [L]
 
Nouveau WRInaute
OK OK :!:
Merci beaucoup !
Ca m'a appris quelques trucs du coup !

Merci encore, et bonne journée à toi

+
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut