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