So I have the following rewrite rules:
RewriteRule ([^/]*)/([^/]*)/([^/]*)$ /index.php?grandparent=$1&parent=$2&page=$3
RewriteRule ([^/]*)/([^/]*)$ /index.php?&parent=$1&page=$2
RewriteRule ([^/]*)$ /index.php?page=$1
But I need this to not pass to the index page for some sub-domains, so I have the following rewrite conditions before this:
RewriteCond %{REQUEST_URI} !^/css/.*$
RewriteCond %{REQUEST_URI} !^/js/.*$
RewriteCond %{REQUEST_URI} !^/admin/.*$
So that the rules will not apply when looking for any file in those directories (including files that may be in sub-directories of those directories). Yet they still keep getting rewritten to index.php.
How can I make exceptions for these directories?
Your RewriteCond should be like this:
RewriteCond %{REQUEST_URI} ^/(admin|js|css)/ [NC]
Additionally you must use L and QSA flags in all the RewriteRule lines like this:
# skip these paths for redirection
RewriteCond %{REQUEST_URI} ^/(admin|js|css)/ [NC]
RewriteRule ^ - [L]
RewriteRule ([^/]+)/([^/]+)/([^/]+)/?$ index.php?grandparent=$1&parent=$2&page=$3 [L,QSA]
RewriteRule ([^/]+)/([^/]+)/?$ index.php?&parent=$1&page=$2 [L,QSA]
RewriteRule ([^/]+)/?$ index.php?page=$1 [L,QSA]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With