Journal RewriteRule

Posté par  .
Étiquettes : aucune
0
9
nov.
2003
Salut journal,

Si tu te souviens de moi il y a quelques temps, j'avais un problème avec le RewriteMod pour mes URL.

La solution, oh combien tordue, avait été trouvée dans un RewriteRule ^([^\?/\.]+)$ /?$1 pour que tout ce qu'on donne (comme /montruc mais pas /montruc/) soit renvoyé à /?montruc.

Mon problème aujourd'hui, c'est que j'ai un dossier et que j'aimerais que TOUT ce qui se trouve dedans soit réenvoyé à /?galerie&element=/mon/joli/path/demande.jpg par exemple pour /mon/joli/path/demande.jpg

Pour l'instant j'ai :
RewriteRule ^/galerie/(.*)$ /?galerie&element=$1
et ça ne fonctionne même pas sur un niveau :(

Dans mon .htaccess à / j'ai donc :
RewriteRule ^/galerie/(.*)$ /?galerie&element=$1
RewriteRule ^([^\?/\.]+)$ /?$1

Est-ce que toi, journal à la bonne âme charitable, tu aurais une solution pour moi ? Car là je galère et je dois dire que j'ai un peu de mal avec ces expressions :S

PS: Oui, j'ai déjà RTFMé mais sûrement quelque chose a-t-il du m'échapper, désolé !
  • # Re: RewriteRule

    Posté par  . Évalué à 0.

    je n'ai pas le manuel sous la main, je n'en suis donc pas sur, mais il me semble que la nouvelle url doit être absolue.
    reRTFM donc un peu sur ce point
    • [^] # Re: RewriteRule

      Posté par  . Évalué à 1.

      Pas selon http://httpd.apache.org/docs/mod/mod_rewrite.html#RewriteBase(...)

      ^/somepath(.*) /otherpath$1 /otherpath/pathinfo <-- valide selon la doc
      • [^] # Re: RewriteRule

        Posté par  . Évalué à 1.

        si j'ai bien compris, tu cherche à remplacer /galerie/truc/bidule.html par /?galerie&element=/truc/bidule.html
        si c'est le cas, ta règle est fausse :
        tu indique ^/galerie/(.*)$ /?galerie&element=$1
        alors qu'il faudrait ^/galerie/(.*)$ /?galerie&element=/$1
        • [^] # Re: RewriteRule

          Posté par  . Évalué à 1.

          Tu es sûr ?
          Car pour avoir à mettre /$1 faudrait que la règle soit ^/galerie(.*)$ et non pas ^/galerie/(.*)$, non ?

          Mais là n'est pas le problème, pour le moment /?=/truc/bidule.html ou /?=truc/bidule.html j'en vois pas encore la couleur :(
          • [^] # Re: RewriteRule

            Posté par  . Évalué à 1.

            si tu met ^/galerie/(.*)$, tu ne prend pas le / dans la parenthèse et tu est obligé de le remettre devant $1 si tu veux ...=/qqchose
            • [^] # Re: RewriteRule

              Posté par  . Évalué à 1.

              oui, mais tjrs est-il que ça fonctionne pas :(
              • [^] # Re: RewriteRule

                Posté par  . Évalué à 1.

                as-tu fait le test de virer la seconde règle pour eliminer tout pb?
                sinon, qu'est ce que ça te renvois : err 404?.... avec quel message, quel url? quelle est ta conf apache?
                il faudrait un petit peu plus de billes, en particulier ce que répond apache.
                • [^] # Re: RewriteRule

                  Posté par  . Évalué à 1.

                  ce qu'il serait sensé répondre si la règle ne s'appliquait pas : un accès refusé au listing du dossier si je demande un somepath/ ou le fichier si je demande un fichier.ext

                  si j'enlève la 2ème règle, ça change rien :|

                  l'URL ne change rien, j'ai essayé avec un [R] pour voir la redirection mais ça change rien non plus :( même URL.

                  Quant à ma conf Apache, tu veux savoir quoi ?

                  merci en tout cas :)
                  tu as d'autres idées ?
                  • [^] # Re: RewriteRule

                    Posté par  . Évalué à 1.

                    salut,
                    Il y a qqch comme rewrite Log et un logLevel de 1 à 9 je crois? Au moins tu verras si cela passe par ta règle. Sinon c'est que ta règle de reconnaissance de l'url est foireuse.
                    Qqs suggestions en vrac et sans discernement
                    - Pb du fait que tu mets ^/ donc ton as besoin d'un url http://monserveur/galerie/...(...) et qu'en fait tu as comme url http://monserveur/monrepertoire/galerie/...(...) ?
                    - Pb de casse? (je ne sais pas si rewrite fait attention à la casse et j'ai pas tout lu le manuel.
                    - pb du fait qu'il manquerait rewrite engine ON (mais il râlerait au démarrage ?)
                    - Tu modifies le mauvais fichier? (un grand grand grand classique ;-) )
                    • [^] # Re: RewriteRule

                      Posté par  . Évalué à 1.

                      \o/

                      RewriteRule ^galerie/(.*)$ /?galerie&element=/$1 [L]

                      Did it !

                      Y'avait un / de trop, ton histoire du "tu mets ^/" m'a mis sur la voie, même si j'ai bien http://serveur/galerie(...) !

                      Merci pour l'aide !

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.