我在我的网站上使用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的重写规则.