繁体   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