让我解释一下我的情况:
我正在使用MVC框架(CodeIgniter),因此每个请求都会被重写到我的index.php文件中,而该文件又会将其路由到我的类和函数。
Offcours如果有真实文件的请求,他们不应该由脚本处理,而是直接从webserver发送到浏览器。
Owkay没问题,以下重写规则就是这样做的:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
我希望某个文件夹的请求(让它称为'私有')仍由php处理。这样做的原因是我将验证用户是否经过身份验证,如果是,则将内容发送到浏览器。
答案 0 :(得分:5)
尝试此规则:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond $1 ^private($|/)
RewriteRule ^(.*)$ index.php/$1 [L]
这将排除private
或以private/
开头的所有网址路径,即使它们是现有文件夹或文件。