从根文件夹中的htaccess规则中排除子目录

I am using below htaccess rules on my website's root folder to remove the files extensions and add trailing slash at the end. However, I'd like to exclude a sub-directory /sub-dir/ from the root folder htaccess rules. I tried to add another htaccess to the /sub-dir/ folder and put RewriteOptions inherit or RewriteEngine Off in the file but none of them works.

RewriteEngine On
RewriteBase /

# redirect from non-www to www
RewriteCond %{HTTP_HOST} ^mywebsite.com.au$ [NC]
RewriteRule ^(.*)$ http://www.mywebsite.com.au/$1 [R=301,L]

RewriteCond %{REQUEST_URI} ^/index.php$
RewriteRule ^(.*)index.php$ http://www.mywebsite.com.au/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
RewriteRule (.*)\.php$ /$1/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ $1.php [L]

# Remove trailing slash:
RewriteRule (.*)/$ $1 [L]

# Now test without the trailing slash:
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule . %{REQUEST_FILENAME}.php [QSA,L]

Any suggestion is highly appreciated.

Thanks

You can either try adding an htaccess file in your subdirectory that has only this:

RewriteEngine On
RewriteRule ^ - [L]

Without any inherit options. Inherit means you want the rules in the parent htaccess to also be applied along with any rules in the subdirectory's htaccess file. With this, you're making sure the rewrite engine is on and making a "do nothing" pass-through rule.

Otherwise, you can add the passthrough at the top of the root's htaccess file (right below RewriteBase):

RewriteRule ^sub-dir/ - [L]