【发布时间】:2015-07-31 08:54:42
【问题描述】:
我在使用 CodeIgniter 时遇到以下问题。我正在尝试设置一个菜单,并使用路由配置来加载正确的内容,但由于某种原因它不起作用。
我在下面设置了 CodeIgniter:
http://localhost/new/CodeIgniter/
我的配置文件如下所示:
$config['base_url'] = 'http://localhost/new/CodeIgniter/';
$config['index_page'] = '';
我的路线配置如下所示:
$route['default_controller'] = 'Home/home';
$route['404_override'] = '';
$route['home'] = 'Home/home';
$route['compare'] = 'Home/home';
$route['signin'] = 'Home/home';
$route['translate_uri_dashes'] = FALSE;
这是我的 Home 控制器:
class Home extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->home();
}
public function home()
{
$this->load->model('home_model');
$this->load->view('header_view', $data);
$this->load->view('nav_view', $data);
$this->load->view('home_view', $data);
$this->load->view('footer_view', $data);
}
public function compare()
{
$this->load->model('home_model');
$this->load->view('header_view', $data);
$this->load->view('nav_view', $data);
$this->load->view('home_view', $data);
$this->load->view('footer_view', $data);
}
public function signin()
{
$this->load->model('home_model');
$this->load->view('header_view', $data);
$this->load->view('nav_view', $data);
$this->load->view('home_view', $data);
$this->load->view('footer_view', $data);
}
public function about()
{
$this->load->model('home_model');
$this->load->view('header_view', $data);
$this->load->view('nav_view', $data);
$this->load->view('home_view', $data);
$this->load->view('footer_view', $data);
}
}
当我访问http://localhost/new/CodeIgniter/ 时,我可以看到主页,但以下都不起作用:
http://localhost/new/CodeIgniter/home
http://localhost/new/CodeIgniter/compare
http://localhost/new/CodeIgniter/signin
http://localhost/new/CodeIgniter/about
有人知道我在这里做错了什么吗?
错误如下:
Not Found
The requested URL /new/CodeIgniter/home was not found on this server.
这是我的 httaccess
<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>
<IfModule ModRewite>
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
【问题讨论】:
-
你遇到了什么错误
-
你需要一个默认控制器
-
@MathieuLescaudron 如果我删除默认控制器,我会收到以下错误消息:“无法确定应该显示什么。路由文件中没有指定默认路由。”
-
是的,对不起,试试
http://localhost/new/CodeIgniter/Home/home或http://localhost/new/CodeIgniter/Home/compare -
ok 尝试使用这个 url localhost/new/CodeIgniter/index.php/home 或 localhost/new/CodeIgniter/index.php/compare 如果它与 htacess 的工作问题
标签: php codeigniter routes