Apache 如何将每个请求改写为index.php,除了真实文件,但不包括一个真实目录?
让我解释一下我的情况: 我使用的是MVC框架(CodeIgniter),因此每个请求都会被重写到index.php文件中,而index.php文件又会将其路由到我的类和函数中 当然,如果有对真实文件的请求,它们不应该由脚本处理,而是直接从Web服务器发送到浏览器 Owkay没问题,下面的重写规则可以做到这一点:Apache 如何将每个请求改写为index.php,除了真实文件,但不包括一个真实目录?,apache,mod-rewrite,Apache,Mod Rewrite,让我解释一下我的情况: 我使用的是MVC框架(CodeIgniter),因此每个请求都会被重写到index.php文件中,而index.php文件又会将其路由到我的类和函数中 当然,如果有对真实文件的请求,它们不应该由脚本处理,而是直接从Web服务器发送到浏览器 Owkay没问题,下面的重写规则可以做到这一点: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ in
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
我希望对某个文件夹的请求(称之为“private”)仍然由php处理。这样做的原因是,我将验证用户是否经过身份验证,如果是,则将内容发送到浏览器
- 家里有谁能帮忙的阿帕奇大师吗
- 对于这个问题,这是一个可以接受的解决方案吗
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond $1 ^private($|/)
RewriteRule ^(.*)$ index.php/$1 [L]
这将排除任何
private
或以private/
开头的URL路径,即使它们是现有的文件夹或文件。hm奇怪的是,这似乎不起作用。。。请求未被重写。。。有什么建议吗?无论如何,谢谢!;-)好吧!谢谢,这让我走上了正轨!;-)根据您的anwser,我将[OR]移动到文件和禁用目录列表的重写条件,从而通过脚本中的任何逻辑来“保护”文件。。。txn!