根网站上的codeigniter 404错误

时间:2013-06-06 06:38:27

标签: codeigniter

我正在尝试为我们的网站设置codeigniter。

如果我希望主页为http://example.com

我的文件夹结构如下所示:

public_html\
  application\
  common\
  system\

如何在转到http://example.com时设置codeigniter来显示页面?我在查看时遇到404错误。

我编辑了config.php,但我不确定要为我的基本网址添加什么。

我的htaccess文件:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

我的routes.php

$route['default_controller'] = "HomeController";
$route['404_override'] = '';

我的HomeController.php

public function index()
{
    $this->load->model('HomeModel');
    $this->load->view('templates/header');
    $data['result'] = $this->HomeModel->function1();
    $this->load->view('index', $data);
    $this->load->view('templates/footer');

}

我的HomeModel.php

<?php

class HomeModel extends CI_Model{

    public function index()
    {

    }

    public function function1()
    {
    $query = $this->db->get('work_orders');
        //return $query->result();
    return $query->result_array();

    }
}

3 个答案:

答案 0 :(得分:0)

配置文件夹中的 router.php 有一行

$route['default_controller'] = "your controller name";

添加您想要默认显示的控制器

答案 1 :(得分:0)

EDIT2:

将Home_troller中的default_controller编辑为homecontroller,如下所示:

$route['default_controller'] = "homecontroller";

并将您的控制器从HomeController.php重命名(如果需要)到homecontroller.php,并在Controller中将其称为Homecontroller。

对模型执行相同操作。在你的目录中将它命名为homemodel.php(或home_model.php)并在模型中调用它为Homemodel。

同时清除浏览器缓存。


EDIT1:

重命名模型。我猜你叫你的模型HomeModel.php。只需将其称为home_model.php。这应该可以解决你的问题。


您的.htaccess文件应如下所示:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ index.php?/$1 [L]

RewriteCond %{REQUEST_URI} ^LoginTut.*
RewriteRule ^(.*)$ index.php?/$1 [L]

RewriteCond $1 !^(index\.php|images|table-images|js|robots\.txt|css|captcha)

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

这只是从我的服务器复制而来,效果很好。

之后,将default_controller更改为:

$route['default_controller'] = "the default controller";

如果public_html是您创建的文件夹,则索引页应为:

$config['index_page'] = "public_html/";

否则留空。 (如果它是你的服务器的httpdocs)

应该工作:)

答案 2 :(得分:0)

您可以将base_url设为空:

$config['base_url'] = '';

尝试这个工作.htaccess conf:

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

如果没有任何帮助,那么托管不支持mod_rewrite apache模块