Are you using one virtual server/per pool/per site?
By that I mean, does each URL(Ex. abc.123.com) has it's own virtual server and pool?
If that's the case you could do that via a custom http profile or a simple iRule for each virtual server.
In case of the custom http profile you just need to configure the maintenance page's URL in the 'Fallback Host' field. This will do a 302 redirect when all pool members in the pool associated with the virtual server are down.
A simple iRule like the following will get you the same result:
when LB_FAILED {
HTTP::redirect ";
}
With either one of this options you need to make sure that the health monitors for the pools are intelligent enough to detect services are actually down.
Hope this helps.