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...