I'll answer the easy question first!
Leave the 301 there for as long as you can - as soon as it goes, you'll stop receiving love from outdated incoming links.
That is a pretty good way of doing things. You could've got into trouble quite easily but I think you've avoided a few potholes. Getting the stopwords out is definitely a good idea.
Going forward, you might was to be careful about changing the text part of the URL - like you say, the content only really depends on the id parameter, so:
Quote:
|
site.com/yes-yes-p-12.html
|
has the same content as:
and that could lead to duplicate content issues. Watch out for it!
One thing you might like to optimise is that you can in fact remove the -a- from your URLs, seeing as the number is always the last thing before the .html and is preceded by a hyphen, thus making it easy to identify without the -a-. Also, you don't really need the first part of the URL that you're capturing in brackets. An example RewriteRule might look like:
RewriteRule ^article/.+?-([0-9]+)\.html$ articles.php?id=$1 [L,QSA]
If you want any part of that explained, post and we'll be happy to help!