Yeah I check against the URL in database through url's id. But a user from my site can just as easily add a new URL for their link and do attack. I like your first idea
URL:
http://www.mysite.com/url/18/23/where 18 is user's account number
23 is url id number in database whichthe URL they have form to add/edit/remove URLs to their favorites sites etc...
I'll put a redirection page and have a HTTP refresh to new URL, but still stupid users how there who will be like doh I didnt know it wasnt your site anymore and I entered my login details. I suppose there is no way to help mitigate that =oP