Real parameter:
pageID
Parameter in rule as currently written:
id
See the difference?
The second problem is that the form
^pageID=\d+$
will only work if "pageID" is your only parameter. If there are potentially others, the condition would have to say
(^|&)pageID=\d+
though you can probably simplify to
\bpageID\b
where \b means any word boundary (including both the non-word character & and the beginning/end of any string). In fact, even the \b is superfluous unless you've also got parameters named, say, "rampageID" that you need to exclude.
Is the object here to redirect only pages with this specific parameter, and not pages that don't have it? Does the parameter have to have a particular value, or is it enough for it to exist? Does it have to have
some value? The following forms all do slightly different things. They may or may not make a difference, depending on what happens on the originating site (the one that sets the parameter):
RewriteCond %{QUERY_STRING} pageID=\d
(parameter exists, and has a positive numerical value)
RewriteCond %{QUERY_STRING} pageID=
(parameter exists, and has been defined)
RewriteCond %{QUERY_STRING} pageID
(parameter exists)
If you were redirecting all pages "podcast.php" regardless of query string, then you wouldn't need a RewriteCond at all. By default, query strings just go along for the ride.