让我解释一下我的情况:
我使用的是一个MVC框架(CodeIgniter),所以每个请求都被重写到我的index.php文件中,然后将这个文件路由到我的类和函数中。
如果有实际文件请求,则不应该由脚本处理,而应直接从networking服务器发送到浏览器。
Owkay没问题,下面的重写规则可以做到这一点:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
我想要一个特定的文件夹(让称为“私人”)的请求仍然由PHP处理。 这样做的原因是,我会然后validation用户是否通过身份validation,如果是的话,发送内容到浏览器。
试试这个规则:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d [OR] RewriteCond $1 ^private($|/) RewriteRule ^(.*)$ index.php/$1 [L]
这将排除任何private
或以private/
开始的URL路径,即使它们是现有的文件夹或文件。