Надо расмотреть каждый возможный вариант:
1 Зашли на сайт по url=blog/neskolko-pravil-o-vybore-tsvetovoy-gammy-laminata. Первый RewriteRule преобразует в index.php?route=blog/article&article_id=84. Второй преобразует RewriteRule преобразует обратно в blog/neskolko-pravil-o-vybore-tsvetovoy-gammy-laminata. Алгоритм видит, что url от изначального не отличается и на этом останавливается. Или после этих правил срабатывает стандартное правило - если нет реального файла или папки то на index.php и в GET параметр _route_ все остальное.
2 Зашли на сайт по url=index.php?route=blog/article&article_id=84. Первый RewriteRule не подходит, пропускается. Второй RewriteRule подходит и преобразует в blog/neskolko-pravil-o-vybore-tsvetovoy-gammy-laminata. Затем либо срабатывает стандартное правило, либо если предусмотрено чтобы оно не срабатывало, то начинается следующая итерация, т.к. от исходного url изменился и тут мы попадам в первый вариант (см. 1)
Итого по моим соображениям надо добавить, какой-то признак - пусть GET параметр need_stop_iteration=1, который позволить не выполнять второй правило если сработало первое. А также, чтобы не срабатывало стандартное правило, добавить флаг L во второе правило. А еще второе правило уточнил бы, что именно ^index.php?, но это так уже оптимизация, чтобы все подряд url-ы не подходили под подобные правила.
Вот такой вариант попробуй, ну и если все ок, то измени на 301 редирект:
RewriteRule ^blog/neskolko-pravil-o-vybore-tsvetovoy-gammy-laminata$ index.php?route=blog/article&article_id=84&need_stop_iteration=1
RewriteCond %{QUERY_STRING} ^route=blog/article&article_id=84$
RewriteRule ^index.php$ /blog/neskolko-pravil-o-vybore-tsvetovoy-gammy-laminata [R=302, L]