htaccess RewriteCond !-f issues
.htaccess, apache, mod-rewrite
Solution
Probably do the trick:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
UPDATE 1
At this part of code:
RewriteRule ^index\.php$ - [L]
`[L]` Stop the rewriting process immediately and don't apply any more rules. So,
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.php [NC,L]
Are not interpreted.
UPDATE 2:
The server will follow symbolic links:
Options +FollowSymLinks
The server will disable multi views:
Options -MultiViews
Rewrite engine will be enabled:
RewriteEngine On
Base directory for rewrite will be `/`:
RewriteBase /
If request match a not existing file, continue:
RewriteCond %{REQUEST_FILENAME} !-f
If request match a not existing directory, continue:
RewriteCond %{REQUEST_FILENAME} !-d
Rewrite to `index.php`, in a not sensitive case, and stop execution of next rules:
RewriteRule index.php [NC,L]
So, try the follow:
Options +FollowSymLinks
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule index.php [NC,L]
Problem
UPDATE: Problem solved After many hours, I finally understood that the problem were in folder permission (757 instead of 755). Damn, I feel like a idiot, but at least, problem solved :) Thanks everyone! I'm having a weird problem with my .htaccess and mod_rewrite. Currently, I've the following .htaccess on my root: ``` Options +FollowSymLinks Options -MultiViews RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule . /index.php [NC,L] ``` The problem is: I want to be able to access any existing file. i.e.: mysite.com/anydir/myfile.png -> open the anydir/myfile.png - mysite.com/anydir/script.php -> open anydir/script.php - mysite.com/file.png -> open file.png - mysite.com/notadir/imnotafile -> rewrite But, everything works except the second point. I've a `file.php` in my `test` folder, but when I do `mysite.com/test/file.php`, it keep rewriting it, and it shouldn't... What I'm I doing wrong?