我为我的网站使用Codeigniter,根网站工作得很好,它有一个登陆页面,但是我有一个开发部分位于/var/www/domain.com/www/dev/
, /var/www/domain.com/www/
是根(登陆页面存储在那里)。
现在,当我去domain.com/dev
,我的编码器网站工作正常,但当我加载一个控制器,例如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没有太多的经验,但我相信这篇博文可以帮助你想出nginx的重写规则。