Насчет твоего вопроса - похоже Apache после замены адреса делает "internal request" и заменяет все заново. Для отличия этих запросов можно применять, например, переменные окружения, но лучше, наверное, использовать то, что сам HTTP запрос остается неизменным... Попробуй так -
Вместо \.php\ нужно поставить \.php.*?\ 
бывает же
Нужно слегка изменить условие. Напишу сразу полный код:
10 июл 2012 в 14:45
"Вставь мою строчку сразу после RewriteEngine On." - не помогло.