We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 31663
    • 40 Posts
    En fait j’ai ça exactement (l’URL rewriting est déjà en place sur mon site et fonctionne quand je ne mets pas la dernière condition).
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    RewriteRule ^annonces_bateau-taille([0-9]+)_longueur([0-9]+)_prix([0-9]+)_voile([0-9]+)_moteur([0-9]+).php$  /recherche_bateau_voilier_resultats.php&simple=$1&longueur_m=$2&prix=$3&voile=$4&moteur=$5 [L]
    

    huh
      • 20488
      • 353 Posts
      Je ne sais pas si cela résoudra ton problème, en tout cas il te faut impérativement inverser les deux lignes :


      RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
      RewriteRule ^annonces_bateau-taille([0-9]+)_longueur([0-9]+)_prix([0-9]+)_voile([0-9]+)_moteur([0-9]+).php$  /recherche_bateau_voilier_resultats.php&simple=$1&longueur_m=$2&prix=$3&voile=$4&moteur=$5 [L]


      à remplacer par

      RewriteRule ^annonces_bateau-taille([0-9]+)_longueur([0-9]+)_prix([0-9]+)_voile([0-9]+)_moteur([0-9]+).php$  /index.php?q=70&simple=$1&longueur_m=$2&prix=$3&voile=$4&moteur=$5 [NC,L]
      RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]


      En effet, chronologiquement, ton action était :
      [tt]
      - Si je trouve n’importe quelle url je vais sur index.php et je sors du fichier .htaccess
      - Si je trouve une url de type /annonce ... je vais sur recherche_bateau_voilier_resultats.php et je sors du fichier.htaccess
      [/tt]

      Première source possible d’erreur : si tu interprète l’action que tu as déclarée, il est évident que tu ne passera jamais dans le deuxième cas.

      Seconde source possible d’erreur : recherche_bateau_voilier_resultats.php n’existe pas physiquement sur ton serveur (ou alors tu passes par un fichier externe à modX). Il faut donc remplacer recherche_bateau_voilier_resultats.php par index.php?q=70.

      A voir donc... wink



        • 31663
        • 40 Posts
        Merci olivier de ta réponse.

        Je ne savais pas que l’ordre était important dans le fichier htaccess.

        Cependant, après avoir fait tout ce que tu m’as dit, hélas ça ne fonctionne pas ; pire, ça me détraque tout undecided
        Comme tu l’auras compris la page "recherche_bateau_voilier_resultats.php" est une page fictive, résultat de l’url rewriting sur la page dont l’id est 70.

        Je sens que j’y suis presque, je pense que ça vient d’une erreur de syntaxe mais pas sûr, peut être est ce une erreur de réflexion ?
        Merci en tout cas de ta réponse.
        wink
          • 20488
          • 353 Posts
          Effectivement, le problème avec les .htaccess, c’est qu’il faut être très pointilleux !


          Ce que tu peux faire éventuellement :

          - Supprimer la ligne suivant de ton fichier .htaccess
          RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]


          - Tester cette ligne
          RewriteRule ^/recherche_bateau_voilier_resultats\.php$ index.php?q=70 [NC,L]


          Si la page www.example.com/recherche_bateau_voilier_resultats.php est accessible, alors généraliser cette ligne avec les bons paramètres.

          - Une fois que tout est ok pour la page testée après la ligne créée, rajouter

          RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]


          Enfin, c’est ce que je ferais... wink



            • 31663
            • 40 Posts
            Ok merci, je vais tester ça.
            Je te tiens au courant.
            Ciao