8791 sujets

Développement web côté serveur, CMS

Bonjour

Je sèche complètement sur mon .htaccess depuis maintenant beaucoup d'heures, je suis certain que je ne suis pas loin du bout du tunnel, mais impossible, donc je me résous à venir chercher de l'aide.

J'explique ma problématique : j'ai beaucoup de sites à gérer, dont un avec un contenu conséquent et plutôt bien référencé, et qui est sous dotclear en mode "url via querytring" (oui, ça pourrai être mieux, certes).

J'ai un soucis le concernant (lié à un projet d'indexation sous un moteur de recherche interne) qui fait que lors de l'indexation je me retrouve avec des url du genre http://<MONSITE>/index.php?page/<MA PAGE> en lieu et place de index.php?pages/ (avec un "s").

Trouvant plus simple de régler ce problème de juste ajouter un "s" via un urlrewrite que via une programmation plus lourde dans une requete sql qui ferai déjà peur à la peur (cette requete pour le logiciel d'indexation ne récupère pas que ces pages, il y a aussi des post qui eux sortent sans pb mais qui sortiraient moins bien avec un s final), je me suis attelé à la tâche, hélas sans réussite.


Résumé : je veux transformer index.php?page/(quelquechose) en index.php/pages/(lamêmechose).

RewriteRule ^index\.php\?page/(.+)$ index.php?pages/$1 [L]


-> ça, ça ne fonctionne pas. sans l'antislash devant le ? non plus, avec un antislash devant le slash de page non plus.
Si je teste la regex dans mon éditeur de texte pourtant il me trouve bien ce que je demande.


Si je teste une réécriture à peine plus simple, ça fonctionne :
# ca ca marche !!! mais avec /page/ , pas avec /index.php?page/ !
RewriteRule ^page/(.+)$ index.php?pages/$1 [L]

Cela prouve bien que mon mod_rewite fonctionne bien, puisque si je fais /page/(quelque chose) j'arrive sur mon contenu. Par contre, toute tentative de rentrer au pied de biche un index.php? avant le parametre "page", je n'ai pas réussi.

J'ai écumé tout internet (deux fois), mais je ne trouve que des solutions pour cacher la querystring et en faire de belles url, pas pour juste la modifier.

Une âme charitable parviendrait-elle à m'aider ?

Merci
Je n'y crois pas ... je sèche littéralement depuis 15h, et là, subitement, je poste cet appel à l'aide, puis une illumination ... et ça marche !

Problème résolu, désolé ! Smiley smile

Pour information, ma solution :

RewriteCond %{QUERY_STRING} page/(.*)
RewriteRule ^index\.php(.*) index.php?pages/%1