'URL rewrite doesn't work but redirection works?

We have this in .htaccess of our WordPress website:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^collections/([^/_]*)/([^/_]*)_([^/_]*)_([^/_]*)_([^/_]*)_([^/_]*)_([^/_]*)_([^/_]*)/?$ /collections/$1/?filter_color=$2&query_type_color=or&filter_length=$3&filter_silhouette=$4&filter_neckline=$5&filter_material=$6&filter_pattern=$7&filter_sleeve=$8 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

If you go to the rewritten URL here, it doesn't work as a Not Found page. However, if you change [QSA,L] to [R=301,NC,L], it correctly redirects to the original URL.

Why?

How can I make the rewriting work here with [QSA,L]?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source