Yes, Redirect re-appends stuff automatically. However, in this case it looks like you're applying a redirect AFTER the request has already been internally rewritten. This redirect exposes the internal server path back out to the world as a URL.
Use RewriteRule syntax and the [R=301,L] flags.
End the substitution URL with a question mark to clear the query string data in the redirect.
Make sure the new code is positioned before any internal rewrites that will deal with the request.