.htacces erreur?

Résolu
pfdp0 Messages postés 191 Statut Membre -  
pfdp0 Messages postés 191 Statut Membre -
Bonjour,

j'ai un code de réécriture dans le forum de mon site, mais il ne fonctionne pas, voici le code:
RewriteEngine on   
RewriteRule ^forum-([0-9])-([a-z]+).html$ forum1.php?id=$1&forum=$2

id est un nombre entre 1 et 9.
forum est une chaine de caractères dans laquelle il y a de tout (à part des espaces).
exemple: forum1.php?id=3&forum=comment-faire? devrait devenir forum-3-comment-faire?.html

Merci d'avence

2 réponses

Résumé de la discussion

Plusieurs échanges portent sur une réécriture d'URL Apache visant à transformer une URL du type sujet-3-comment-faire.html en appel interne script.php?id=3&topic=comment-faire. Des variantes de motifs et de drapeaux ont été proposées, notamment des groupes de capture pour le numéro et le nom de l’élément, ainsi que des considérations sur les caractères autorisés. La meilleure réponse conseille d'adapter la règle à un format plus riche, par exemple en utilisant un motif ^sujet-([0-9])-(.*)-(.*)-(.*).php$ et en redirigeant vers script.php avec plusieurs paramètres, tout en conservant les indicateurs NC, NE, QSA et L. En cas de structure différente des URLs, il faut aussi préciser l’usage du slash initial, point sur lequel la solution retenue insiste.

Bobot (l'IA à votre service)
  1. Atropa Messages postés 2051 Statut Membre 274
     
    bonjour essai en ajoutant ces drapeaux : [NC,NE,QSA,L]
    1
    1. pfdp0 Messages postés 191 Statut Membre 12
       
      je les places où?
      0
    2. Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
       
      Comme ça :
      RewriteRule ^forum-([0-9])-([a-z]+).html$ forum1.php?id=$1&forum=$2 [NC,NE,QSA,L]

      Par contre, tu est au courant que ce n'est pas une redirection ? c'est à dire qu'il faut acceder à tes pages en faisant forum-3-comment-faire?.html et que le htaccess traduira ensuite au serveur pour savoir où chercher la page.
      0
    3. pfdp0 Messages postés 191 Statut Membre 12
       
      oui je sais, c'est juste une réécriture,
      mais ça ne fonctionne toujours pas...
      0
    4. Atropa Messages postés 2051 Statut Membre 274
       
      je viens de comprendre... désolé je n'avais pas fait attention au "?" dans l'url

      le ? indique le départ de la chaine query. donc là c'est comme si tu demandais le dossier
      forum-3-comment-faire
      et un get .html c'est un peut bizarre le . dans le nom de variable donc je ne sais pas ce que ca donne au final mais ça ne peut pas fonctionner
      les caractère d'une url doivent vraiment être limité a
      a-z 0-9 _-./ il ne faut vraiment pas mettre d'autres caractères même pas un petit accent parce que ça finira par avoir ses limites....
      0
    5. pfdp0 Messages postés 191 Statut Membre 12
       
      ok, mais même l'url forum intitulé "Aide" ne se modifie pas...
      0
  2. pfdp0 Messages postés 191 Statut Membre 12
     
    j'en ai cependant une réécripture qui ne as pas:
    RewriteRule ^sujet-forum-([0-9])-([0-9]{1-6})-(.*)-(.*).php$ /comms.php?id=$1&id_billet=$2&forum=$3&billet=$4 [NC,NE,QSA,L]
    lorsque la reddirection arrive sur la page, elle ne fait rien.
    0
    1. Atropa Messages postés 2051 Statut Membre 274
       
      le / devant comms est de trop
      0
    2. pfdp0 Messages postés 191 Statut Membre 12
       
      résolu: il fallait juste modifier pour que ça soit comme ça:
      RewriteRule ^sujet-forum-([0-9])-(.*)-(.*)-(.*).php$ /comms.php?id=$1&id_billet=$2&forum=$3&billet=$4 [NC,NE,QSA,L] 

      mais laisser le /
      0