网址无法在codeigniter中使用

时间:2015-10-17 05:38:08

标签: php codeigniter

您好我是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页面完全正常。但是如果我用我的默认控制器更改,那么我会收到一条消息,指出找不到页面

3 个答案:

答案 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>