Once you have a rule using RewriteRule from mod_rewrite in your htaccess file you must not use any directives from mod_alias. Specifically do not use Redirect or Redirectmatch in the same htaccess file as any RewriteRule directives. Convert all rules to use RewriteRule.
When rules from different modules are listed within a single htaccess file, the rules are processed in "per module" order and not in the strict order they are listed in the htaccess file. Mixing rules from different modules means you have no control over the order they are processed. When that's a mixture of internal rewrites and external redirects processed by different modules that will usually end in disaster.