我在我的网站上使用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重写文件。
答案 0 :(得分:4)
我相信codeigniter使用前端控制器模式,它会使用重写规则将所有请求重定向到index.php。
由于重写规则适用于apache而非nginx,服务器实际上正在寻找名为search
的目录,该目录位于另一个名为index.php
的目录下,依此类推。
关于nginx,我没有太多经验,但我相信这个blog post可以帮助你在nginx上提出重写规则。