您好我是codeigniter的新手。我在Ubuntu 14.04上安装了codeigniter,我可以看到欢迎页面。但是我创建的其他控制器无法正常工作。
我收到一条未找到页面的消息。我环顾四周但找不到任何解决问题的方法。
有人可以帮忙吗?
class Login extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->helper('url');
$this->load->library('email');
$this->load->helper('form');
$this->load->library('form_validation');
$this->load->library('session');
$this->load->model('login_model');
}
public function index($msg = NULL) {
$data['msg'] = $msg;
if ($this->session->userdata('validated') == false) {
$this->load->view('templates/header_login');
$this->load->view('login_view', $data);
$this->load->view('templates/footer');
}
else {
redirect('home', 'refresh');
}
}
routes.php文件
$route['default_controller'] = 'login';
默认的codeigniter页面完全正常。但是如果我用我的默认控制器更改,那么我会收到一条消息,指出找不到页面
答案 0 :(得分:1)
每当您安装Codeigniter时,
您始终可以使用http://sitename/index.php/controller/method/parameter访问任何控制器。您可以使用.htaccess文件从url中删除index.php。
您可以使用http://sitename.com/index.php/login
访问您的登录页面示例.htaccess代码:
monetdb-client-tools
答案 1 :(得分:0)
要访问自定义控制器,您只需在网址中使用index.php
即可。例如,如果您的控制器名称为User
,请使用此网址http://localhost/your_project/index.php/user
如果您想在User
控制器中使用create
之类的任何其他方法,请使用
http://localhost/your_project/index.php/user/create
但是,如果您不想在网址中看到index.php
,那么您可以在根目录名.htaccess
中放置一个文件并将以下内容放入此文件中
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
参考:More Details
现在您的网址看起来像http://localhost/your_project/user/create
答案 2 :(得分:0)
Codeigniter就像这样工作
www.yourdomain.com/controller/function
如果您在控制器中添加索引功能,则可以直接访问
www.yourdomain.com/controller /
检查您是否添加了索引功能
请在项目根目录中添加.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /stock
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>