my htaccess file is that:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} .*
RewriteCond %{QUERY_STRING} .* [NC]
RewriteRule .*\.php cms/index.php?request=$0&%{QUERY_STRING} [L]
RewriteRule ^(?:(?!website).).*\.(?:(?!php).)+$ cms/website/$0 [L]
RewriteRule ^[^./]*(\/[^./]*)*$ cms/index.php?dirs=$0 [L]
for example there is a file in uploads/aa.png, and if I request http://example.com/uploads/aa.png, it still redirect http://example.com/website/uploads/aa.png.
shortly, if there is file at the url requested it still redirect “cms/website”, how can I disable that?
The RewriteCond directive only applies to the next RewriteRule. (Only one.)
So your rewrite conditions apply only to your first RewriteRule. The other rewrite rules are unconditional.
You have to repeat the RewriteCond’s for each RewriteRule, or set an environment variable: