Page get parameter doesn’t work with is_single() function

If exist the page parameter in the blog post, I have to redirect to the 404 page instead of current post URL.
I tried to check the current page type (is singular) and try to get page parameter in the function.php, but I couldn’t. It’s doesn’t work together. I need to implement it only for blog post.
If possible .htaccess redirect also fine

Why does the $_GET parameter ?search forward the front-page to the archive/blog page

I need the $_GET parameter ?search for my front-page for a third party plugin.
Whenever I enter http://wp-site.tld/?search=foo I get redirected to the blog/archive page.
If I enter http://wp-site.tld/some-page/?search I get redirected to /some-page.
It appears to be a redirection only for the front-page.