How to hide slug numbers with htaccess

The obvious answer would be to simply change the taxonomy slug from brand-2 to brand.

Assuming that can’t be done for some reason …

Super important warning Editing .htaccess is very dangerous and can completely mess up your website. Do not edit .htaccess if you do not know what you are doing. Always test .htaccess rules on a non-live server. Always back up your .htaccess file before editing it. Always be ready to immediately replace an edited .htaccess file with your backup. You have been warned. Do not blame me if this does not work or you blow out your website.

It’s possible to use mod_rewrite; you would want to add this BEFORE the WordPress rewrite rules:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^product-category/brand-2/(.*)$ http://www.yoursite.com/product-category/brand/$1 [R=301,L]

This assumes, of course, that everything in the category slugged “brand” is also in the category slugged “brand-2.”

Failing that, there are plugins that will allow you to redirect pretty much anything. Like this one:

https://wordpress.org/plugins/custom-permalinks/

Basically, that plugin hooks the template_redirect action, then uses wp_redirect to move the request to a new URL. You could build something similar in your own functions.php page.