I have the following structure
- .htaccess
- cms
- other_cms
-- xyz
In the .htaccess
I have a lot of rewrite rules which I want to ignore for /other_cms
.
I added the following on top of my .htaccess
RewriteEngine On
RewriteRule ^other_cms/ - [L]
RewriteRule ^other_cms/test/ - [L]
RewriteRule ^other_cms(/.*)?$ - [L,NC]
RewriteCond %{REQUEST_URI} ^other_cms/(.*)$
RewriteRule ^.*$ - [L]
My goal is that every subdirectory of /other_cms
(no matter if it really exists or not) and /other_cms
itself is ignored by this .htaccess
file in the root.
I also tried to add a condition to every rule:
RewriteCond %{REQUEST_URI} !^other_cms(/.*|)$
When I open /other_cms/test
it still calls all rules and the 404 of the /cms
is applied.
I have added an .htaccess file to /other_cms
including RewriteEngine Off
but I suppose this is never read.
What am I doing wrong?
CodePudding user response:
I solved it using the following on top in the root .htaccess file:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^other_cms/(. )$ /other_cms/index.html?u=$1 [NC,QSA,L]
and I removed the .htaccess file in the other_cms/
folder.
This makes sure it uses the index.html
file of my subfolder.