How to modify .htaccess to serve brotli compressed static assets over gziped ones?
Give this a try

# Rules to correctly serve gzip compressed CSS and JS files.
# Requires both mod_rewrite and mod_headers to be enabled.
&lt;IfModule mod_headers.c&gt;
  # Serve brotli compressed CSS files if they exist and the client accepts gzip.
  RewriteCond %{HTTP:Accept-encoding} br
  RewriteCond %{REQUEST_FILENAME}\.br -s
  RewriteRule ^(.*)\.css $1\.css\.br [QSA]

  # Serve gzip compressed CSS files if they exist and the client accepts gzip.
  RewriteCond %{HTTP:Accept-encoding} gzip
  RewriteCond %{REQUEST_FILENAME}\.gz -s
  RewriteRule ^(.*)\.css $1\.css\.gz [QSA]

  # Serve brotli compressed JS files if they exist and the client accepts gzip.
  RewriteCond %{HTTP:Accept-encoding} br
  RewriteCond %{REQUEST_FILENAME}\.br -s
  RewriteRule ^(.*)\.js $1\.js\.br [QSA]

  # Serve gzip compressed JS files if they exist and the client accepts gzip.
  RewriteCond %{HTTP:Accept-encoding} gzip
  RewriteCond %{REQUEST_FILENAME}\.gz -s
  RewriteRule ^(.*)\.js $1\.js\.gz [QSA]

  # Serve correct content types, and prevent mod_deflate double gzip.
  RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
  RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]
  RewriteRule \.css\.br$ - [T=text/css,E=no-gzip:1]
  RewriteRule \.js\.br$ - [T=text/javascript,E=no-gzip:1]

  &lt;FilesMatch "(\.js\.gz|\.css\.gz)$"&gt;
    # Serve correct encoding type.
    Header set Content-Encoding gzip
    # Force proxies to cache gzipped &amp; non-gzipped css/js files separately.
    Header append Vary Accept-Encoding
  &lt;/FilesMatch&gt;
  &lt;FilesMatch "(\.js\.br|\.css\.br)$"&gt;
    # Serve correct encoding type.
    Header set Content-Encoding br
    # Force proxies to cache gzipped &amp; non-gzipped css/js files separately.
    Header append Vary Accept-Encoding
  &lt;/FilesMatch&gt;
&lt;/IfModule&gt;