Если вы хотите остаться по HTTP, когда строка запроса пуста, используйте приведенное ниже решение № 1.
Если вы хотите сохранить HTTP только при наличии параметров p, q или z, закомментируйтеРешение № 1 и раскомментируйте решение № 2.
RewriteCond %{HTTPS} off
#1 if query string is not empty
RewriteCond %{QUERY_STRING} !^$
#2 only if p or q or z params are not present
#RewriteCond %{QUERY_STRING} !(^|&)(p|q|z)= [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}