1

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

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

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

public_html\
  application\
  common\
  system\

如何设置 codeigniter 以在访问http://example.com时显示页面?查看时出现 404 错误。

我编辑了 config.php,但我不确定要为我的基本 url 放什么。

我的 htaccess 文件:

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

我的路线.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();

    }
}
4

3 回答 3

0

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

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

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

于 2013-06-06T06:41:20.750 回答
0

编辑2:

编辑你的 default_controller 从 HomeController 到 homecontroller 像这样:

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

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

对模型做同样的事情。在您的目录中将其称为 homemodel.php(或 home_model.php),并在您的模型本身中将其称为 Homemodel。

同时清除浏览器缓存。


编辑1:

重命名您的模型。我猜你把你的模型叫做 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)

应该管用 :)

于 2013-06-06T06:45:03.510 回答
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 模块

于 2013-06-06T15:40:49.113 回答