访问控制器时,nginx上Codeigniter发生404错误

时间:2011-10-02 00:06:51

标签: php codeigniter nginx

我在我的网站上使用Codeigniter,根网站工作得很好,有一个登陆页面,但是我有一个位于/var/www/domain.com/www/dev/的开发部分/var/www/domain.com/www/是根目录(登陆页面存储有)。

现在,当我转到domain.com/dev时,我的codeigniter网站工作正常,但是当我加载控制器时,例如domain.com/index.php/search它给了我404错误。

domain.com的错误日志中显示:

2011/10/02 02:03:37 [error] 17042#0: *568 open() "/var/www/domain.com/www/dev/index.php/search" failed (20: Not a directory), client: xx.xx.xx.xx, server: domain.com, request: "GET /dev/$

现在我还不知道为什么会这样做以及如何解决这个问题。如何停止此操作并删除“index.php”删除URL,因为Codeigniter教程仅包含在nginx上无效的apache重写文件。

1 个答案:

答案 0 :(得分:4)

我相信codeigniter使用前端控制器模式,它会使用重写规则将所有请求重定向到index.php。

由于重写规则适用于apache而非nginx,服务器实际上正在寻找名为search的目录,该目录位于另一个名为index.php的目录下,依此类推。

关于nginx,我没有太多经验,但我相信这个blog post可以帮助你在nginx上提出重写规则。