[英]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.