Исходя из идиотских урлов это явно самопись, ни один из известных мне урлов 404 с гет параметрами не содержет.
А следовательно это явно самопись.
Отслеживать 404 бло-бы правельней на стороне php средствами вашего ЧПУ
Так же я бы заострил внимание что из урла и индекс нужно убирать и гет параметры в идиале оставляя нормальное ЧПУ
/catalog/tovar1/
без всяких
index.php?base=page&addr=$2
Однако отвечу вам на ваш вопрос
Не работает у вас по нескольким причинам.
1. спецсимволы нужно экранировать
ndex.php?base
угадайте где он тут, притом это настолько частая ошибка что в некоторых версиях веб серверов ее специально пофиксили
2. ну и главное GET не является частью RequestURI и естественно не попадает в регулярку.
Для выделения гет параметров используется другой метод.
.
# 301 --- http://www.mydefile.ru/company/?section=torgovlya&PAGEN_1=9 => http://www.mydefile.ru/about/
RewriteCond %{QUERY_STRING} (^|&)section=torgovlya($|&)
RewriteCond %{QUERY_STRING} (^|&)PAGEN_1=9($|&)
RewriteRule ^company/$ /about/? [L,R=301]
В последнем правиле я показал как удалить гет параметр вовсе
Как добавить вы уже сообразили.