OK, now I gotta go back and rewind. I thought .asp was strictly an IIS thing. But .htaccess I can do.
The bad news is...
RewriteRule ^index\.asp%3Fpagename%3DAbout%2BUs$ http://example.com/about-us/ [R=301,L]
That %3F is a percent-encoded question mark ... which
cannot occur in the path of an URL. The rule is looking for things in the path that aren't in the path, so the rule never applies. You will need to go back and read the instructions for the plugin, and find out how to handle query strings. If it doesn't say, throw the plugin away :(
An htaccess file will contain a piece that looks like this:
Options +FollowSymLinks
RewriteEngine on
These two lines occur only once, at the beginning. Then, for each page, there will be two rules. All the ones marked [R=301] come in a group first, and then the ones marked [L].
Typical:
RewriteCond %{QUERY_STRING} pagename=about([\ +]|%2[B0])us [NC]
RewriteRule ^/(?:index\.asp|$) http://www.example.com/about-us [R=301,L]
{add similar Rule-plus-Condition pairs for other pagenames}
RewriteRule ^about-us$ /index.asp?pagename=About+Us
{add similar Rules for other pagenames, matching the first set}
I doubt the ([\ +]|%2[B0]) is really necessary; a simple + should do it.
Be careful! WordPress creates its own htaccess file and will overwrite anything you've already got in place. So if you are editing the htaccess on your own, make sure to keep a copy. Any time you upgrade WP you will need to replace the htaccess file.