В эти дни у меня была такая же проблема, и я получил действительно интересный ответ от пользователя DaveRandom в чате PHP:
"По сути, mod_rewrite эффективно работает в цикле (это не совсем так, но фактически это то, что он делает), а флаг [L] подобен выражению" continue "в PHP (он останавливает обработку приведенных ниже правил в текущая итерация, но затем она снова начнет обрабатывать правила сверху.) Таким образом, в ваших правилах первая итерация соответствовала первому правилу, а затем вторая итерация пропустила первое правило (оно вывело тот же результат, что и входные данные) и затем сопоставил второе правило. "
Возможное решение : «если вы используете apache 2.4, используйте [END] вместо [L], это будет исправлением».