Apache 2 RewriteRule reçoit un groupe de capture erroné

Je rencontre des problèmes avec les groupes de capture dans une règle de réécriture. Voici un exemple:

RewriteRule ^([az]+)\.php$ test.php?captureGroup=$1 

Le groupe de capture que j’obtiens est “test” au lieu de ce que j’ai tapé dans la barre d’adresse. Etrangement cela fonctionne bien:

 RewriteRule ^([0-9]+)\.php$ test.php?captureGroup=$1 

c’est-à-dire une url comme “88.php” me donne “88” comme groupe de capture. Quel pourrait être le problème?

C’est parce que votre URI cible ( test.php ) correspond également à [az]+.php modèle [az]+.php et que la règle s’exécute deux fois.

Vous pouvez l’utiliser pour éviter que:

 RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([a-z00-9]+)\.php$ test.php?captureGroup=$1