mod_rewrite
не соответствует строке запроса в первом параметре RewriteRule
.Вам понадобится RewriteCond
вместо этого.Кроме того, при использовании правил перезаписи в .htaccess
ведущий /
отсутствует при сопоставлении в RewriteRule
.
RewriteCond %{QUERY_STRING} id=([^&]*)
RewriteRule ^cat/subcat/$ /cat/subcat/%1 [L,R=301]
%1
- это идентификатор, который был сопоставлен в RewriteCond
Надеюсь, это поможет.