Non-Public Taxonomies with register_taxonomy

I am trying to create taxonomies that are used in queries in my plugin but should not be visible to via the url query.
I have set:
'public' => 'false'
'show_ui' => 'true'
'rewrite' => 'false'

My understanding is that 'public' => 'false' should be enough to prevent public queries via the url but if I go to mydomain.com/?taxonomy=term I still get a list of all posts that use term.

The only way I could stop it was to create a redirect like:
if(!empty($_REQUEST['taxonomy'])) { wp_redirect(url, 301); }

That works but it just doesn't seem to be the right way and I'm afraid, with much use, the redirects could get out of hand and possibly start to conflict or have unintended consequences.

Does anyone have any ideas for how to achieve this? I just need to keep the taxonomy from responding via the url query.