2014-01-26 31 views
2

我有一個默認的控制器集:笨 - 默認控制器不加載自動

$route['default_controller'] = "Home"; 

然而,當我去http://mydomain.com/,它說404頁面沒有找到,但要http://mydomain.com/Home時,控制器加載罰款。可能是什麼問題呢?我一直在傷腦筋了好幾個小時。如果需要,我的htaccess是posted here。謝謝!

+0

您的.htaccess文件看起來不錯。嘗試使用** $ route ['default_controller'] =「home」; **這樣的小寫字母,看看它是否會產生差異 –

回答

2

原來我的問題是有些無關。我不得不將我的默認控制器php文件重命名爲小寫字母,控制器類名稱變爲小寫字母,所有事情都開始工作。當CI查找默認控制器文件時,它將以小寫字母搜索文件;如果我將控制器文件命名爲「Home.php」而不是「home.php」,則CI會在Linux上忽略它(因爲Linux文件系統區分大小寫)。

1

你的路由沒有問題,問題在於你的htaccess文件。嘗試刪除

ErrorDocument 404 /index.php 
+0

謝謝,但它仍然執行相同的操作。默認控制器在顯式指定時工作,但在嘗試加載'http:// mydomain.com /'時不會加載。 – arao6

0

沒有從你的configs /控制器的任何其他信息&代碼,我建議檢查這些配置/ config.php文件(這兩個應該是在正常情況下是空的):

$config['base_url'] = ''; 
$config['index_page'] = ''; 

IIRC,我看到過類似的問題,它與這些配置變量有關。希望這可以幫助你一點。

+0

這已經是設置。不過謝謝 – arao6

1

你可能有一些.htaccess的問題。 托盤是這樣的:

的.htaccess

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

的config.php

$config['base_url'] = 'www.homepage.com'; 
$config['index_page'] = ''; 

routes.php文件

$route['default_controller'] = "yourcontrollername"; 
$route['404_override'] = '';