代码点火器控制器文件名不能以大写字母开头

时间:2016-04-22 09:21:52

标签: php codeigniter path routes frameworks

我之前使用小写字母作为控制器文件名,

但是,最近将文件移动到需要控制器名称以资本

开头的其他服务器

=========================================

以下是重命名示例:

文件名: Home.php

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

链接: http://example.com/index_folder/

==========================================

显示错误

Unable to load your default controller. Please make sure the controller specified in your Routes.php file is valid.

当我改变路线时

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

它仍然显示相同的错误,

如果我去

,那只会成功
http://example.com/index_folder/Home/

如何解决这个问题?谢谢你的帮助

更新

这是htaccess文件,位于项目文件夹的根目录:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>

重命名的原因是,如果我的控制器是小写的

,新服务器似乎有问题

2 个答案:

答案 0 :(得分:0)

Linux区分大小写,保持文件名和类名相同,然后重试。它会起作用。

相同的代码在Windows上可以正常工作,但在Linux上会出现异常。

答案 1 :(得分:0)

根据Documentation

class Home extends CI_Controller {

        public function index()
        {
                echo 'Hello World!';
        }
}

然后将文件保存到 application / controllers / 目录。

重要: -

  

该文件必须称为“Home.php”,大写字母为“H”。

现在使用与此类似的网址访问您的网站:

<强> example.com/index.php/home /

当URI不存在时,可以告诉CodeIgniter加载默认控制器,就像只请求您的站点根URL一样。

要指定默认控制器,请打开application/config/routes.php文件并设置此变量:

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

其中'home'是您要使用的控制器类的名称。

如果您现在加载主index.php文件而未指定任何URI段,默认情况下您将看到“Hello World”消息。