The target URL should include the protocol and domain name.
Yes, you need the [R=301,L] flag to make it a 301 redirect, otherwise you'll get a 302 redirect.
It's one line of mod_rewrite code, i.e. a RewriteRule. Let's see your best shot.
However, do note that adding index.php to the URLs that people see and use out on the web is somewhat a backwards step.
Hmm. This is becoming a habit. Must type faster. :)