redirect based on content type using rules
That's happening because you're reacting on the content is viewed event, which means everytime a content of the type you're describing in the conditions is displayed. You need to extend more those conditions to add the search context.

You can either compare with the site path with a "Data comparison" condition on  site:current-page:path to node/[node:nid]

A better solution would be to filter out the view mode, I'm guessing you're looking for reacting on the "Full" view mode of the node, so just add a "Data comparison" condition on view-mode and set it to Full content

Something very similar has been answered before in: How to set Rules event for &quot;Content is viewed&quot; from excluding Teaser view?

In any case, if you want a node type to not have a final page, I recommend the Rabbit hole module.