An .htaccess for our entire site
Unfortunately I don't think there is much you can do here because of how the targets of your regexes are different. I was going to say you could change some of these to use groups, for example:

RewriteRule blog/(.*)/([0-9]+)-(.*)$ blogpost.php?brand=$1&amp;blog_id=$2&amp;titre=$3
RewriteRule brand/([0-9]+)-(.*) brand.php?id=$1&amp;brand=$2
RewriteRule shop/brands/([0-9]+)-(.*) shopbrand.php?id=$1&amp;brand=$2


These all end with the pattern ([0-9]+)-(.*) so you almost could extract the first part and use that file, like this:

RewriteRule (.*)/([0-9]+)-(.*)$ $1?id=$2&amp;brand=$3


However you can't because e.g. shop/brands doesn't match shopbrand.php (and not everything has brand=). There just isn't enough commonality in the paths to make this sort of thing feasible.

If your goal is to simply get rid of .htaccess, using a script and using a dispatcher with PHP logic would be an alternative, as stated in the question comments. Personally I don't think that would be any simpler though, I think it would just be moving the "problem" into a different file--one that Apache needs to start up a PHP thread/process to solve, instead of doing it on its own.

The only way, IMHO, to improve this situation would be to architect the site differently and/or abandon the old URLs so you don't need to rewrite them. If you can change what the URLs are, then I would suggest switching to a single index.php dispatcher and MVC or REST pattern (or use a framework that handles this, like Symfony).