簡體   English   中英

Live時出現Codeigniter`“未指定輸入文件”和“找不到404頁”錯誤

[英]Codeigniter `No Input File Specified` & `404 Page Not Found` Errors when Live

我有一個基於codeiginiter 2.0.1建立網站 (我自己的個人網站)。 我使用WAMP在本地構建了此應用程序,並且可以按本地方式100%運行。 我將此上傳到我的實時服務器,並且不斷收到“找不到404頁面”錯誤。 這個錯誤是通過我的Home-> Error方法而不是服務器來自codeigniter的,因此代碼點火器肯定可以正常工作。

這是我的路線配置。 如果我將404_override更改為“ Home”。 它會按原樣加載我的家庭控制器,但是當我轉到ANY頁面時,找不到404頁面。

$route['default_controller'] = 'Home';
$route['404_override'] = 'Home/Error';

我懷疑這可能與我的.htaccess和Codeigniter配置有關。

// Codeigniter Config.php - Note: My Hosting is with Godaddy. [CGI/FastCGI]
$config['index_page'] = 'index.php?';
// Tried Auto and All others, REQUEST_URI works fastest for me.
$config['uri_protocol'] = 'REQUEST_URI';

我的.htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L] 

我通過SO&Google嘗試了很多鏈接來解決此問題,下面重復嘗試了這些鏈接。
- 找不到CodeIgniter 404頁面,為什么?
- 現有控制器上的codeigniter 404
-http://codeigniter.com/forums/viewthread/60469/#297477
-http://codeigniter.com/wiki/Godaddy_Installaton_Tips
-其他

我敢肯定這與htaccess和mod_rewrite有關,有什么想法嗎?


更新資料
如果我將$route['404_override'] = 'Home/Error'更改為我的任何控制器,它們將按預期顯示和工作,但由於某些原因,它始終會拋出404頁面。

如果轉到: /index.php/home我收到錯誤未No input file specified.

第一個控制器名稱應使用小寫字母,例如:
$route['default_controller'] = 'home';

那么您可以將index_page留空:
$config['index_page'] = '';

最后在.htaccess中,應該在基本路徑目錄中的index.php旁邊,您可以像這樣更改最后一行:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /home/index.php?$1 [L]

希望它能解決

找到了問題..
確保您的控制器文件名小寫
controllers/Home.php不正確,這controllers/Home.php了404頁面未找到錯誤。 controllers/home.php是正確的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM