Для 1 Да, вам нужно добавить ?
в конце вашего правила:
RewriteRule . /newurl_1/? [L,NC,R=301]
, поскольку строка запроса добавляется автоматически, но с ?
она не будетдобавляются, если вы не используете флаг QSA
.
Что касается 2., вам нужно написать правило для каждого параметра cat.Вы можете сделать это или возможно использовать RewriteMap
(который не работает в файле htaccess).Если вы собираетесь перечислять их все, вы можете настроить одно из ваших условий так, чтобы оно выглядело так:
RewriteCond %{QUERY_STRING} ^cat=12($|&) [NC]
, чтобы оно совпадало с 12 , а не как 1234