This is actually the situation :

RewriteEngine On
RewriteBase /app/webroot/

RewriteRule ^(.*)$ $1 [QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

Does the RewriteConds for that second rule use caused by the very first RewriteRule ?

For example, basically request /onestaticfile.txt which file really is available in /application/webroot, how to be certain the final url could be /app/webroot/onestaticfile.txt rather than /app/webroot/index.php?url=onestaticfile.txt ?

For example, basically request /onestaticfile.txt which file really is available in /application/webroot, how to be certain the final url could be /app/webroot/onestaticfile.txt rather than /app/webroot/index.php?url=onestaticfile.txt ?

The RewriteConds for that second rule can get examined. Consider onestaticfile.txt is available, it'll fail the !-f make sure the 2nd rule will not be used (so final url is going to be: /app/webroot/onestaticfile.txt). Likewise, if onestaticfile.txt does not exist, the second rule would get applied.

Either in situation, once the rule is used, an interior redirect happens and also the whole factor happens again using the rewritten URI. However the second time around does not alter the base URI (with no query strings) so nothing happens the next time around.

Should you have had an L within the square brackets of the first rule, the second rule would not be used because spinning will invariably finish around the first Rule.