RewriteCond $1 >99 RewriteCond $1 <8415 RewriteRule ^page(\d+)\.html$ http://sub.domain.com/$0 [R=301,L]
RewriteRule ^page(?:[1-8]\d\d\d?|9\d\d)$ http://sub.domain.com/ [R=301,L]
RewriteCond $1 >99 RewriteCond $1 <8001 RewriteRule ^page(\d+)$ http://sub.domain.com/ [R=301,L]
Судя по тому, как редиректит /katalog-tovarov/lol на /katalog/lol можно предположить, что в файле .htaccess есть такая конструкция
Redirect 301 /katalog-tovarov/ /katalog/
которая срабатывает раньше чем правило для /katalog-tovarov/wims8/maska-dlya-lica-wims8-grape-daily-mask.
Можно перенести Redirect 301 /katalog-tovarov/ /katalog/ в самый конец файла.
RewriteCond %{THE_REQUEST} " /\?module=cat&action=item&id=[^ &]*&ref=" RewriteRule ^ /? [R=301,L]
RewriteCond %{THE_REQUEST} &ref= RewriteRule ^ /? [R=301,L]
RewriteCond %{THE_REQUEST} " /\?module=cat&action=item&id=" RewriteRule ^ /? [R=301,L]
Символы = _ # можно не экранировать.
Строка считается комментарием только если она начинается с #, т.е. внутри шаблона можно спокойно использовать.
Об том и речь. Браузер не отправит эту часть #/sort=p.sort_order/order=ASC/limit=15/page=1
Сервер получит только /applicator-lyapko.
Там подвох в том, что браузер не передаёт на сервер всё, что идёт после знака #.
Для адресов начинающихся на /a/
RewriteRule ^a(/[^/]+)+$ $1 [R=301,L]
Всё, кроме существующих файлов.
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule /[^/]+$ $0 [R=301,L]
RewriteCond %{THE_REQUEST} " /index\.php\?route=journal2%2Fblog%2Fpost&journal_blog_post_id=12 " RewriteRule ^ /new_url? [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteCond %{QUERY_STRING} =route=journal2%2Fblog%2Fpost&journal_blog_post_id=12 RewriteRule ^index\.php$ /new_url? [R=301,L]