PHP-访问控制器时,nginx上Codeigniter出现404错误

我在我的网站上使用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教程仅包含apache的重写器,而在nginx上无效.

解决方法:

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

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

关于nginx,我经验不足,但是我相信blog post可以帮助您提出有关nginx的重写规则.

上一篇:php-在线用户,CodeIgniter和会话


下一篇:php-如何扩展或修改Codeigniter日历以处理多天事件和每天多事件