Bonjour ou bonsoir à tous,

J'ai un problème d'appel à API sur mon site, hébergé sur un serveur Apache mutualisé.

Je lance un call sur l'URL suivante : "http://www.monsite.com/api/v1/client/1234"

Dans le répertoire : "http://www.monsite.com/api/v1/client/", j'ai placé le fichier htaccess suivant :

Options +FollowSymlinks
RewriteEngine on

...suivi de l'une des 4 règles suivantes :
  1. RewriteRule ^.*([0-9]+)$ http://www.monsite.com/fiche.php?idrec=$1 [L]
  2. RewriteRule ^.*(\d+)$ http://www.monsite.com/fiche.php?idrec=$1 [L]
  3. RewriteRule ^.*\/(\d+)$ http://www.monsite.com/fiche.php?idrec=$1 [L]
  4. RewriteRule ^.*client\/(\d+)$ http://www.monsite.com/fiche.php?idrec=$1 [L]

Le but est évidemment de passer à mon script "fiche.php" l'ID du record-client concerné, compris entre 0 et 9999.

En passant l'ID "1234" comme indiqué au début de ce post, j'obtiens :
  • avec les règles (1) et (2) : le lancement correct de mon script php, mais avec le "4" final de "1234" et lui seul (donc : http://www.monsite.com/fiche.php?idrec=4). Ce que je peux à la rigueur comprendre, si le ".*" initial skippe tout sauf le dernier caractère.
  • avec les règles (3) et (4) : l'erreur "Not Found" provoquée en sortie du htaccess (!)

J'ai essayé plein d'autres expressions, que je valide sur un testeur en ligne : toutes catchent exactement les valeurs d'ID que je passe.
Mais en ligne, dans l'htaccess... rien à faire : "Not Found" systématique !

En particulier, le RewriteRule semble planter dès que je passe un slash d'URL (échappé en \/) : c'est ici le cas dans les variantes n°3 et 4.

Où est donc mon erreur ???

Merci de vos lumières (...je HAIS les RegEx ) !