You probably know this, but for others, all links on the site should be in the form of link tags:
Where the number is the ID of a resource. A full link would look like this:
<a href="[[~12]]">Page 12</a>
Once you've done that, all links on the site will work regardless of the page alias or extension.
For your SEO issue, depending on the nature of the site and the number of pages, I would be tempted to just make the home page the error page and install the LogPageNotFound extra, which will capture all attempts to visit the bad links. Then I'd use the log to create 301 rewrite rules in .htaccess for all the old links.
That way you don't need to mess with Symlinks, a plugin, or some universal rewrite rules that might have unintended consequences.
------------------------------------------------------------------------------------------
PLEASE, PLEASE specify the version of MODX you are using.
MODX info for everyone:
http://bobsguides.com/modx.html