My main public_html directory has the following .htaccess rules:
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# i
This may be obvious and you've already tried it - but have you created an .htaccess file in the subfolder of interest? Any settings in this file will override equivalent settings in the root folder.
UPDATE:
For the root .htaccess file, instead of
IndexIgnore */*
... try
Options -Indexes
Then, in the subfolder's .htaccess file, place this single line:
Options +Indexes
Does that achieve the desired effect?
Change your .htaccess with this:
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# if request is not for the /sub-dir/
RewriteCond %{REQUEST_URI} !^/sub-dir/ [NC]
# otherwise forward it to index.php
RewriteRule . index.php
</IfModule>