Telle quelle, ta règle signifie "tout URL se terminant par ([a-zA-Z0-9\_]+)-([0-9]+)\.php" (à cause du ...$), d'où le comportement observé. Si tu veux que ce masque soit strict et pas "se terminant...