CodeIgniter子子文件夹控制器在localhost上工作,但在服务器上不工作

时间:2016-02-05 14:45:08

标签: php codeigniter

我只在服务器环境中遇到这种结构的麻烦:

controllers    
    -> Controller_home.php    
    -> folder 1/
      -> Controller_1.php
      -> Controller_2.php
      -> folder 2/
        -> Controller_3.php

Controller.home.php工作正常

Controller_1.php工作正常

Controller_2.php工作正常

Controller_3.php不起作用 - 看来我的自定义404页面错误

我正在使用CodeIgniter 3.0版本,而之前我遇到的问题是每个控制器所需的首字母都是大写的。因此,我将所有控制器和模型文件重命名为使用第一个字母作为大写。

我认为我现在遇到的问题可能是由于控制器内的文件夹/不是大写的,但不是因为这个。

我重申结构适用于本地环境

修改:根据要求,我的.htaccess文件:

Options -Indexes
Options +FollowSymLinks

# Set the default file for indexes
DirectoryIndex index.php

<IfModule mod_rewrite.c>

    # activate URL rewriting
    RewriteEngine on

    # do not rewrite links to the documentation, assets and public files
    RewriteCond $1 !^(index\.php|public|robots\.txt)

    # do not rewrite for php files in the document root, robots.txt or the maintenance page
    RewriteCond $1 !^([^\..]+\.php|robots\.txt)

    # but rewrite everything else
    RewriteRule ^(.*)$ index.php?/$1 [L]

</IfModule>

<IfModule !mod_rewrite.c>

    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.

    ErrorDocument 404 index.php

</IfModule>

<IfModule mod_expires.c>

    ExpiresActive on

    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/bmp "access plus 1 month"

</IfModule>

我的Controller_3.php(它实际上是一个客户控制器)代码:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Customers extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();


    }

    public function index()
    {   
        $this->load->view('backend/customers/index');
    }
}
?>

编辑2: 我的完整(到目前为止)路线文件:

$route['translate_uri_dashes']                  = TRUE;
$route['default_controller']                    = 'home/login';
$route['404_override']                          = 'home/error';

$route['app/entities/index']                    = 'backend/entities/index';
$route['app/suppliers/index']                   = 'backend/suppliers/index';
$route['app/administration/customers/index']    = 'backend/administration/customers/index';

1 个答案:

答案 0 :(得分:1)

经过大量的调试并在 @CodeGodie 的帮助下给我提示,我最终意识到将系统/文件夹传输到我的FTP服务器时出现了一些问题。 / p>

我再次下载了CodeIgniter 3.0框架,只需复制粘贴System /文件夹即可立即开始工作。