I said rewrite, not redirect.
With a redirect, you'd have all new .php URLs and would redirect .shtml requests to those new URLs.
With a rewrite, you would continute to use your old .shtml URLs, rewriting the request to be handled by a .php file.
Rewriting does not make new URLs. If you think that, you have the whole process "exactly backwards" in your head. Rewriting takes the .shtml URL request and looks for a non-default internal location to serve the content (i.e. a .php file).