Maintenir (ou pas) le rewrite dans la barre d'adresse ?

Nouveau WRInaute
Bonjour à tous,

J'expérimente depuis peu quelques techniques d'URL rewriting pour mon site perso fait en PHP/MySQL et hébergé chez OVH en mutualisé.
Première technique testée : l'emploi du ErrorDocument dans le htaccess. Dans l'ensemble, c'est parfait : facile à mettre en oeuvre, fonctionne très bien, joie. Pour rappel :
On redirige les erreurs 404 vers un fichier. En l'occurence je l'ai redirigé sur mon index.php, qui va analyser l'URL et extraire les informations clées (un identifiant par exemple).
Mais gros (?) problème, cette magouille, même si transparente pour l'utilisateur (le navigateur), renvoie une 404 et les robots risquent de ne pas aimer.

Donc j'ai décidé de passer au "vrai" URL rewriting avec les RegEx. J'y arrive plutôt bien (c'est moins compliqué que ça en a l'air) mais il y a quelque chose qui me chiffonne.
Si je tape dans mon navigageur
www.monsite.com/5_vive-les-fleurs.html
et que ma règle
RewriteRule ^([0-9]+)_[a-zA-Z0-9-]*\.html$ http://www.monsite.com/index.php?action=page&id=$1 [L]
est appliquée, j'obtiens dans la barre d'adresse :
www.monsite.com/index.php?action=page&id=5
...
Or moi je voudrais qu'il y ait toujours www.monsite.com/5_vive-les-fleurs.html !!!

Moults sites y arrivent très bien mais la seule méthode que je connaise pour cela consiste à avoir le contrôle sur DocumentRoot au sein d'Apache :
DocumentRoot "/srv/www/monsite/index.php"
Y a t'il un moyen quand on est en mutualisé ? Autrement dit : par le htaccess ?

Merciiiiii
Antoine
 
WRInaute discret
Je suis en train de mettre en place ce genre de règles sur mon site et je viens d'écrire celle là qui ne semble pas réagir comme celle que tu indiques. J'ai bien ma page avec l'extension html en résultat

Et je suis aussi en mutualisé

Code:
RewriteRule ^mission-([0-9]*)-([0-9]*).html /missions/index.php?jeu=$1&no=$2
 
WRInaute impliqué
Salut,
Code:
RewriteRule ^([0-9]+)_[a-zA-Z0-9-]*\.html$ /index.php?action=page&id=$1 [L]

En fait il ne faut pas mettre l'url complète ;)
 
Nouveau WRInaute
Merci pour vos réponses ultra-méga-rapides... Ca fait plaisir de voir un forum aussi actif, même un dimanche soir :)
Ca fonctionne bien, trop la joie, youpi et vive les fleurs :)
En revanche, la prochaine fois, j'utiliserai la fonction "recherche" avant de poser ma question... J'ai vu que le sujet a déjà été traité pas mal de fois :oops:

Lambo :
Je pense que ton problème vient de ton ".html"... Il faudrait que tu mettes "\.html$", ie au complet :
RewriteRule ^mission-([0-9]*)-([0-9]*)\.html /missions/index.php?jeu=$1&no=$2

Le "." est considéré comme n'importe quel caractère en RegEx et le $ indique la fin de chaîne. Bon, si le "." est n'importe quel caractère ça devrait fonctionner quand même... Mais bon, on sait jamais.
Si tu veux un bon site de RegEx en français : http://www.expreg.com/ est très bien.

Antoine
 
WRInaute discret
Oh mais ma règle fonctionne très bien !
T'inquiète po pour moi !

Mais il est vrai que je pourrais blinder un peu plus ma règle en mettant le backslash et le dollar. Je crois que je vais le faire d'ailleurs.
 

➡️ 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