A HTTP::redirect will issue a full HTTP redirect to the client browser, change the address bar, and have the browser send a new request to the server. This is likely what you have discovered. If you wish to just "change" the URI so the backend server sees something different than the client browser, you can do so with a combination of the "Host" header and the HTTP::uri command.
Here's an example:
when HTTP_REQUEST {
HTTP::header replace "Host" "foobar.com"
HTTP::uri "/some/new/path"
}
This will turn any request you send to the virtual server, into this into the backend
http://foobar.com/some/new/path
without sending a redirect to the client. The client still thinks he's going to
http://coolstuff.com/buysomething.
Of coarse, you can do either the Host Or the URI or both if you want, I just illustrated how to do it for the full URI.
Check out the wiki docs on those two methods for more info.
-Joe