Page is a not externally linkable
g1smd - 5:32 am on Jan 23, 2013 (gmt 0)
The problem is you're using the words redirect and rewrite interchangeably. They are two different things. Both can be coded using RewriteRules, and the syntax difference is very small between the two.
There are three steps you need:
Link to href="/user/account" from the pages of your site. URLs are defined in links. htaccess cannot change a URL, it can only act on a URL request after a link has been clicked.
# Redirect requests for example.com/user/account.php to example.com/user/account RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /user/account.php\ HTTP/
RewriteRule ^user/account.php http://www.example.com/user/account [R=301,L]
That takes care of users that continue to ask for the old URL from browser bookmarks or stale SERPs.
# Rewrite requests for example.com/user/account to fetch the content RewriteRule ^user/account$ /index.php?page=custom&file=paypal/user_menu_pack.php [L]
The rule pattern tries to match the requested URL. In this case the modification is as simple as replacing \.php with $ in each rule.
Getting the rewrite to work is the easy bit. You should also add the redirect for existing traffic and you must change the links on the page so that users start off by asking for the correct URL when they click the link.
Beware that unescaped slashes are NOT a valid character within query string parameters. That may cause you some trouble.