A 301 redirect for dynamic portion only

Is it okay to do a 301 redirect, only for the dynamic portion of a page?
Will the core page remain indexed when doing so?
This is a duplicate content question.

redirect 301 /page.htm?Qpile=shag
http://www.site.com/pageR.htm?Qpile=shag

redirect 301 /page.htm?Qpile=berber
http://www.site.com/pageR.htm?Qpile=berber

redirect 301 /page.htm?Qpile=plush
http://www.site.com/pageR.htm?Qpile=plush

redirect 301 /page.htm?Qpile=indooroutdoor
http://www.site.com/pageR.htm?Qpile=indooroutdoor

Note that there are only a couple results per dynamic result above.
The two pages are similar but not exact. Maybe I should put a couple text lines near the top to at least help distinquish the pages, at least until the current results fall off the index.

Will Google and others know enough not to compare the pages against each other? The site is being reorganized. These are old indexed results and I don’t want to do this but I must.

I’m not sure if I understand. Is the site using frames?
You say “core page” as if there are two urls for one page.
Generally speaking, you are simply pointing URL A to URL B. You can also point a group of pages to a single url.

I recently did this with phpLD in masse and google has handled it just fine so far. We basically had something like
phplinkdirectory.com/articlescript/templates/
and changed to
phplinkdirectory.com/templates/
Google has done great indexing the new urls and processing the redirects, and we have not lot any traffic as a result.

The site is not using frames.
Each of the /page.htm?Qpile='s have been separately indexed by Google and MSN, as they were intended.

With the 301 redirect, when the new locations if /pageR.htm?Qpile='s are picked up indexed, with the current ones still among their index, I want to avoid duplicate content.

I see what you mean now. I wouldn’t think of “core page”. I would think of every dynamic page as something that must be redirected
/page.htm?Qpile=A to newpageA
/page.htm?Qpile=B to newpageB

A 301 on this is resulting in a 500 Internal Server Error. And on the host…must have been the question mark.