I think every PHP programmer feels that way after they work though several patterns for the first time. Your first reaction is say "DOH!" and the second to kick your shins for not researching patterns sooner...
I see nothing wrong with passing page via a query string - it's what all my own front controllers do. Generally my pages are referred to as:
index.php?action=index.display (the default page for index.php (if no querystring)) or game.php?action=fleet.attack&fid=3, etc.
In this case, the FC would delegate to the relevant Command object - i.e the Attack Command of the Fleet Module. Don't worry about that level of design though

I do it the seemingly complex way since I use FC as part of a broader pattern...
I don't use mod_rewrite on the basis it exists to make things "pretty". I see little added security unless you wish to obscure page flow to a user who has no clue about mod_rewrite. It's one of those developer preferences you sometimes see argued to death on forums...