为什么My_controller在linux托管中不起作用?

时间:2014-12-01 12:55:52

标签: linux .htaccess codeigniter-2 codeigniter-url codeigniter-routing

当我为我的网站创建MY_controller和Frontend_controller时,

得到了空白页。

这是控制器     

class welcome extends Frontend_controller{
    public function index(){
        $this->load->view('welcome_message');
    }
}

我还在名为:Frontend_controller.php的库中创建Frontend_controller

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 
 Class Frontend_controller extends MY_controller{ 
     public function __construct(){
         parent::__construct();
          echo'<script>alert()</script>'; 
     }
 }
?>

我还在Core文件夹中创建了MY_controller.php

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 
Class MY_controller extends CI_controller{
    public $data = array(); 
    public function __construct() { 
        parent::__construct();  
    }
}

&GT;

用于调用所有类名我还从一些教程复制此函数并保留在config.php中

function __autoload($classname) {
    if (strpos($classname, 'CI_') !== 0) {
        $file = APPPATH . 'libraries/' . $classname . '.php';
        if (file_exists($file)) {
            @include_once($file);
        }
    }
}

最终我创建.Htaccess

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /
RewriteCond %{ENV:REDIRECT_APP_PATH} !^$
RewriteRule ^(.*)$ - [E=APP_PATH:%{ENV:REDIRECT_APP_PATH}]

RewriteCond %{ENV:APP_PATH} ^$
RewriteRule ^(.*)$ - [E=APP_PATH:/$1]

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

我已更改并测试此选项的URI和$ config [&#39; base_url&#39;] =&#39;&#39 ;;太

| 'AUTO'            Default - auto detects
| 'PATH_INFO'       Uses the PATH_INFO
| 'QUERY_STRING'    Uses the QUERY_STRING
| 'REQUEST_URI'     Uses the REQUEST_URI
| 'ORIG_PATH_INFO'  Uses the ORIG_PATH_INFO
|
*/
$config['uri_protocol'] = 'QUERY_STRING';

以下是查看welcome_message.php在视图中折叠

Html wrap

但它在我的localhost中工作,为什么它不能在linux主机上工作** **我应该更改主机吗?

当我输入welcome或登录我的网站时,我得到空白页面的结果

我很抱歉,我不知道怎么做,因为我花了更多的时间。如果我不能收到公司的警告信。

感谢帮助

1 个答案:

答案 0 :(得分:0)

Linux是区分大小写的操作系统,而Windows则不是。 你应该改变

MY_controller to MY_Controller
CI_controller to CI_Controller

也.Htaccess应该重命名为.htaccess。 空的php页面也称为“死亡白页”通常意味着您遇到了一个php致命错误。您应该在发生详细错误报告时检查您的日志(如果您不在生产服务器中,则启用show error)。