RewriteCond %{QUERY_STRING} (?:^|&)page=(\d+)
RewriteRule ^(.*)$ /$1page/%1/? [R=301,L]
RewriteCond %{QUERY_STRING} (?:^|&)page\=(.+)(?:$|&)
RewriteRule ^cat/$ /cat/page/%1/? [L,R=301]
(?:^|&)
- это или?
или &
а ?:
исключает эту группу то есть она не становится $1(.+)
- первая група 1 символ и более%1
- эквивалент $1 но уже из RewriteCond /?
- удалить гет параметры