301 Redirects Appends ?p=original/url/path - how can I remove?
The issue here is that your Redirect directive is conflicting with Craft’s index.php-hiding RewriteRule directive. (Redirect is a mod_alias directive and RewriteRule is a mod_rewrite directive. They’re two separate modules that can be used for the same thing, but lead to unexpected consequences when used together.)

To fix this, use a RewriteRule directive for your own custom redirects as well, rather than Redirect.

RewriteRule ^blog/category(/.*)?$ /blog/archive$1 [R=301,L]


Make sure that you place that before Craft’s redirect.