The only things wrong are the use of menu.php as a directory and the No Case flag in the RewriteRule (URIs are case sensitive). I would have dropped the .php after menu in the regex to show that you don't want Apache to serve menu.php just yet (but that requires you to account for the change in directory level for your relative links).
If you've requested the "normal URI" as you've displayed above, it's because it's your job as webmaster NOT to create that link but to use menu/9/ (I also loathe trailing slashes like this) which would work (with corrected regex as suggested above).
Please RE-read the tutorial as this should have been obvious.
Tip: To see whether the problem is within your mod_rewrite or menu.php script, use [R=301,L] for your flags ... just remove the R=301, before uploading to a production server.