2011-10-02 41 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的重寫規則。