Forum Moderators: Robert Charlton & goodroi
forums.foo.com/post123.html ==> foo.com/forums/post123.html
If this is what you want, any request to the first should result in a 301 response to the second. Most web servers can accomplish something like this using a single rewrite rule that will apply to all pages.
If instead you mean that forums.foo.com has a different IP address than foo.com and you are thinking of changing them to be the same, stop!
The right way to do this is to do the 301 for each page. I am not sure, however, that you can count on there being no disruption in how Google sees this. While there's no better way I know to make such a change, if you have a lot of traffic and rely on it, perhaps you should not make the change at all. There's no reason that a physical reorganization of servers and filesystems need be reflected in a change to your URLs.
sublime1
I would suggest that you ask others if yor conjecture about cross-linking is valid -- I would be somewhat surprised if Google considered a link between a subdomain and the parent domain anything bad. My understanding of the concern about cross-linking is that when site A links heavily to site B and vice-versa, and, importantly, the domains appear to otherwise be unrelated. This can suggest one of two things: either the sites are in cahoots to boost each others' PR, or ther are really owned by the same company, or something nefarious is going on. A sub-domain is a differnt beast altogehter as it is necessarily related to its parent. There's nothing wrong with linking to other pages within your domain, so I doubt there's any difference with a sub-domain.
But like I said, check with others who know more than I :-)