我正在尝试为我们的网站设置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();
}
}
答案 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模块