Reecriture de l'ensemble des pages commencant par

Nouveau WRInaute
Bonjour,

je cherche depuis pas mal de temps sur le sujet :

Comment re-écrire les pages commençant par exemple par Sp_ en Sp- en utilisant le rewritecond et rewriterule par htacess avec un code 301.

En bref comment rediriger l'ensemble des pages Sp_*.html vers Sp-*.html exemple Sp_test.html vers Sp-test.html
et ceci de façon permanente pour les moteurs de recherche.

Merci à vous tous.
 
Nouveau WRInaute
Merci de votre réponse,

cela ne fonctionne pas et voici le message :
You don't have permission to access /D:/xxx/www/Sp-Action.html on this server.

De plus je pense que j'ai oublié de préciser quelque chose :

Plus loin dans mon htaccess j'ai la ligne suivante :

RewriteRule ^Sp-([0-9a-zA-Z-]*)\.html st_prog.php?li_st_prog=$1 [L]

A mon avis je dois passer de façon obligatoire par un Rewritecond puis un Rewriterule, mais je ne vois pas comment faire.

Merci pour tout.
 
WRInaute accro
il faut indiquer l'adresse de redirection en absolu : qui commence par un "/" (pas besoin de mettre le http://)
 
Nouveau WRInaute
Bonjour,

Merci de votre réponse.

je viens de re-essayer en mettant cette ligne dans le htaccess :

RewriteRule ^Sp_([0-9a-zA-Z_]*)\.html ^/Sp-([0-9a-zA-Z-]*)\.html [QSA,R=301,L]
ou bien
RewriteRule ^Sp_([0-9a-zA-Z_]*)\.html /Sp-([0-9a-zA-Z-]*)\.html [QSA,R=301,L]

J'ai toujours le message d'erreur :

You don't have permission to access /D:/xxx/www/Sp-Action.html on this server.

je ne vois vraiment pas comment procéder.

Merci de vos réponses futures.
 
WRInaute accro
tu as mal recopié la formule : tu ne dois pas avoir de masque dans la réécriture à droite, il faut que tu le remplaces par $1
 
Nouveau WRInaute
J'ai donc mis :

RewriteRule ^Sp_(.*)\.html /Sp-$1.html [L,R=301]

Même message d'erreur sur un test : Sp_action.html

De plus dans l_url je peux avoir Sp_titi_tata.html qu'il faut transformer en Sp-titi-tata.html

Merci d'avance
 
Nouveau WRInaute
Chose bizarre :

Après un certain temps de latence....

RewriteRule ^Sp_(.*)\.html /Sp-$1.html [QSA,R=301,L] fonctionne sur un test simple avec un seul _

mais ne marche plus lorsque le nombre de _ est superieur à 1

exemple : Sp_tyty_tata.html donne apres rewrite Sp-tyty_tata qui renvoi un code 404 (normal)

reste donc à résoudre le cas ou il y à plusieurs _

Merci à tous.
 
WRInaute accro
cypaysan a dit:
mais ne marche plus lorsque le nombre de _ est superieur à 1
normal, car après la première transformation ton sp_ est devenu sp- et que tu ne transformais que les "_" situés juste après "sp"
 
Nouveau WRInaute
Merci de votre réponse mais je ne vois vraiment pas comment faire pour transformer l'ensemble des "_" par des "-" et ceci en une seule ligne. J'avoue être novice en rewriting..
 
Nouveau WRInaute
Bonjour,

J'ai enfin réussit à trouver la solution sur un site :

RewriteRule ^(.*)_(.*)_(.*)_(.*).html$ /$1-$2-$3-$4.html [QSA,R=301,L]
RewriteRule ^(.*)_(.*)_(.*).html$ /$1-$2-$3.html [QSA,R=301,L]
RewriteRule ^(.*)_(.*).html$ /$1-$2.html [QSA,R=301,L]
RewriteRule ^(.*)_.html$ /$1-.html [QSA,R=301,L]

Ce n'est pas très élégant mais cela fonctionne et c'est le principal.

Encore merci à tous et bonne journée.
 
Discussions similaires
Haut