世云哥 发表于 2014-12-12 13:39:04

CI3.0 启用hook导致404错误


将dilicms的system升级到CI3.0后,有些post会出现404错误。比如登录的post,但是后台的其他post不会出现404。
因为启用hook,对method do,会重定向到_do_post. 这里会出现404错误。即使do里面是空的。没有更详细的debug信息可以帮助。
曾怀疑是redirect的时候出错,但是其他页面的post都正常,所以应该不是hook定义的问题。

<?php if ( ! defined('IN_DILICMS')) exit('No direct script access allowed');
/**
* DiliCMS
*
* 一款基于并面向CodeIgniter开发者的开源轻型后端内容管理系统.
*
* @package   DiliCMS
* @author      DiliCMS Team
* @copyright   Copyright (c) 2011 - 2012, DiliCMS Team.
* @license   http://www.dilicms.com/license
* @link      http://www.dilicms.com
* @since       Version 1.0
* @filesource
*/
// ------------------------------------------------------------------------
/**
* DiliCMS 用户登录/退出控制器
*
* @package   DiliCMS
* @subpackageControllers
* @category    Controllers
* @author      Jeongee
* @link      http://www.dilicms.com
*/
class Login extends CI_Controller
{
    /**
   * 构造函数
   *
   * @accesspublic
   * @return \Login
   */
public function __construct()
{
parent::__construct();
$this->load->database();      
$this->load->library('driver');
$this->load->library('session');
$this->load->library('settings');
$this->settings->load('backend');
$this->load->switch_theme(setting('backend_theme'));
}

// ------------------------------------------------------------------------
    /**
   * 默认入口
   *
   * @accesspublic
   * @returnvoid
   */
public function index()
{
if ($this->session->userdata('uid'))
{
   redirect(setting('backend_access_point') . '/system/home');
}
else
{
   $this->load->view('sys_login');
}
}
// ------------------------------------------------------------------------
    /**
   * 用户登录验证
   *
   * @accesspublic
   * @returnvoid
   */
    public function _do_post()
    {
// $username = $this->input->post('username', TRUE);
// $password = $this->input->post('password', TRUE);
   if(1){
   $this->load->view('sys_login');
}
    }

世云哥 发表于 2014-12-12 13:42:10

但是如果对该do的method不重定向,不会出现404
页: [1]
查看完整版本: CI3.0 启用hook导致404错误