visiblement, tu as encore quelques lacunes dans le principe de l’URL Rewriting …
le principe de base consiste à proposer à l’utilisateur une URL “virtuelle” (qui ne pointe sur aucune page) … et à faire en sorte que, lorsque l’utilisateur utilise cette adresse, ce soit en réalité une autre page qui soit afficher …
concrètement, pour reprnedre ton exemple l’utilisateur tape www.monsite.com/fr/repertoire1/index.php dans la barre d’adresse, mais on lui affiche www.monsite.com/langue.php?lg=fr/repertoire1/index.php
faire l’inverse n’a, en toute logique, aucun sens, si ce n’est d’alourdir encore plus le traitement de ta page sans faciliter la navigation et l’indexation de ton site par les moteurs de recherche …
essaie la rêgle suivante :
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^langue.php?lg=([a-z]{2})/(.*)$ $1/$2 [L]
et si ça ne marche toujours pas, active les logs du mod_rewrite pour voir comment il lit et comprend ta rêgle, et donc identifier pourquoi ça ne fonctionne pas :oui:
peut-être parce que la query_string ne fait pas partie de l’url analysée (elle ne contient que “langue.php”
voir du côté de rewriteCond pour récupérer cette query_string
edit: voilà un exemple
RewriteCond %{QUERY_STRING} parent=([0-9]+)
RewriteRule /([0-9]+)\?parent=([0-9]+) /$1/parents/%1 [PT] http://forum.apachefrance.com/viewtopic.ph…00c1e7ddaf03c27
donc dans rewritecond tu recherche dans ta query_string, dans rewriterule, tu l’utilise avec %1
C’est logique, tu veux que les anciennes urls fonctionnent pour ceux qui ont des bookmark, et même pour les pages déjà indexées, mais dans ce cas il faudrait un redirection permanente: les internautes voient que l’url change, et le moteurs en tiennent compte pour se mettre à jour.
parenthèse fermée, as-tu bien regardé les logs? car j’avais constaté que pour analyser la partie query_string il fallait ruser.
d’autre part, est-ce que tu n’aurais pas du conserver l’ancienne page “langue.php” et faire ta redirection dedans?
ça éviterais d’enchainer 2 réécritures d’urls successives (surtout qu’il faut bien vérifier que les règles s’appliquent toutes, les paramètres “L” atc. vont empêcher la recherche sur d’autres règles).