2011-10-02 24 views
2

我使用Codeigniter为我的网站,根网站工作得很好,其中有一个着陆页,但我有一个开发部分位于/var/www/domain.com/www/dev/其中/var/www/domain.com/www/是根(着陆页是存储在那里)。404错误CodeGo.net,在Nginx上访问控制器时

现在,当我去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的rewriterule。

回答

3

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

由于重写规则只能用于Apache和Nginx的不是,服务器实际上是在寻找一个叫search目录当中另一个叫index.php等目录下的生活。

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