簡體   English   中英

CodeIgniter - 默認控制器不自動加載

[英]CodeIgniter - Default controller not loading automatically

我有一個默認的控制器集:

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

但是,當我訪問http://mydomain.com/ ,它顯示 404 Page Not Found,但是當訪問http://mydomain.com/Home ,控制器加載正常。 可能是什么問題呢? 我已經頭疼了好幾個小時了。 如果需要,我的 htaccess 會在此處發布 謝謝!

原來我的問題有點無關。 我不得不將我的默認控制器 php 文件重命名為小寫,將控制器類名重命名為小寫,一切都開始工作了。 當 CI 查找默認控制器文件時,它會以小寫形式搜索該文件; 如果我將我的控制器文件命名為“Home.php”而不是“home.php”,CI 在 Linux 上會錯過它(因為 Linux 文件系統區分大小寫)。

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

ErrorDocument 404 /index.php

您可能有一些 .htaccess 問題。 托盤這樣:

.htaccess

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

配置文件

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

路由文件

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

如果沒有來自您的配置/控制器的任何其他信息和代碼,我建議檢查 config/config.php (在正常情況下兩者都應該是空的):

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

IIRC,我見過類似的問題,它與這些配置變量有關。 希望這對你有所幫助。

我確定這個 .htaccess 解決了所有 ubuntu 用戶...

DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

我有一個默認的控制器集:

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

它對我有用。

暫無
暫無

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

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