ARNO*

Geek dilettante habitant une belle et grande propriété sur la Côte d’améthyste

  • J’ai un problème de RewriteRule très chiant sur un serveur Apache.

    J’essaie d’intercepter :

    https://monsite.com/en/adresse-page

    pour servir :
    https://monsite.com/adresse-page?langue=en

    Pour ce faire je fais habituellement dans .htaccess :

    RewriteRule ^en/(.*)$        $1?langue=en [QSA,L]

    Mais sur ce serveur, rien à faire, ça ne veut pas.

    Par contre, si je fais :

    RewriteRule ^en/(.*)$        https://monsite.com/$1?langue=en

    là ça fonctionne (mais là ça fait un Redirect, avec changement visible d’URL, donc ce n’est pas ce que je veux).

    C’est d’autant plus bizarre que, par ailleurs, j’ai cette ligne qui fonctionne très bien :

    RewriteRule ^fiche([0-9]+)(\.html)?$        spip.php?page=fiche&id_article=$1 [QSA,L]
    • sans doute parce que t’as pas de fichier nommé adresse-page ? essaie peut-être avec l’option pass-thru (PT) pour que adresse-page?langue=en soit ensuite convertie (par les autres règles) en spip.php?wazza-wazza

    • Non plus.

      J’ai même essayé un :

      RewriteRule ^en/(.*)$        spip.php?url_propre=$1 [PT]

      ça ne fait rien de plus.

      Par contre

      RewriteRule ^en/(.*)$        spip.png

      ça marche.

      Et aussi :

      RewriteRule ^en/(.*)$        anglais.php?url=$1 [QSA,L]

      ça fonctionne aussi, et je récupère bien la variable $_GET["url"] dans mon script.

      Curiosité aussi, j’ai un délai de plusieurs secondes avant de « voir » le résultat de mes modifs sur le fichier .htaccess, comme s’il y avait un proxy avant. (C’est du OVH, mais je n’ai pas les détails, je ne gère pas cette machine.)

      Autre remarque, c’est la même manip que j’utilise sur Orient XXI, où ça fonctionne très bien :
      https://orientxxi.info/fr/mot2.html
      https://orientxxi.info/en/mot2.html
      https://orientxxi.info/ar/mot2.html