【问题标题】:CodeIgniter URL not workingCodeIgniter URL 不起作用
【发布时间】:2013-07-22 19:12:39
【问题描述】:

我想知道是否有人可以帮助我???我正在使用 CodeIgniter 创建一个小的登录屏幕。但是,每次我调用该函数以使用 CodeIgniter 表单助手验证详细信息时。 404 错误一直显示 CodeIgniter 找不到 URL。我的“查看”文件代码如下:

<!doctype html>
<html>
<head>
    <title>CodeIgniter Prototype</title>

    <!-- CSS/LESS Code Links -->
    <link rel = "stylesheet" href = "<?php echo base_url();?>css/style.css" type = "text/css"/>
</head>

<body>
    <div class = "login_wrapper">
        <h1>ONESG OneInvoice Exporter</h1>
        <?php
            echo form_open('login/check_login');
            echo form_input('username', '', 'placeholder = "Enter Username"');
            echo form_password('password', '', 'placeholder = "Enter Password"');
            echo form_submit('submit', 'Login');
            echo form_close();
        ?>
    </div>
</body>
</html>

我的控制器代码如下:

    <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Login extends CI_Controller {

    public function index() {
        $this->load->view('login_form');
    }

    public function check_login() {
        $this->load->model('login_model');
        $query = $this->login_model->validate();

        if ($query) {
            $data = array (
                'username' => $this->input->post('username'),
                'is_logged_in' => true
            );

            $this->sessions->set_userdata($data);
            redirect('site/members_area');
        }

        else {
            $this->index();
        }
    }

}

【问题讨论】:

  • 请发布您的控制器代码
  • load->view('login_form'); } 公共函数 check_login() { $this->load->model('login_model'); $query = $this->login_model->validate(); if ($query) { $data = array ( 'username' => $this->input->post('username'), 'is_logged_in' => true ); $this->sessions->set_userdata($data);重定向(“站点/成员区域”); } 其他 { $this->index(); } } }
  • 能否请您编辑您的问题并将其与格式化一起放在那里。 :)
  • 你的 url 中有 index.php 吗??
  • 所以在访问 yoururl.com/index.php/Login 后你会得到 404 ?

标签: php codeigniter url


【解决方案1】:

在 .htaccess 中添加这个

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

然后在routes.php的config中添加

$route["members_area/(.*)"] = 'site/members_area/$1';

【讨论】:

    【解决方案2】:

    检查您的文件夹结构是否有 .htaccess 文件。 如果不添加名为 .htaccess 的文件名 并将以下代码添加到文件中

    RewriteEngine on
    RewriteCond $1 !^(index\.php|resources|robots\.txt)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-01
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      相关资源
      最近更新 更多