代码之家  ›  专栏  ›  技术社区  ›  Eiji

Codeigniter总是重定向到同一方法

  •  1
  • Eiji  · 技术社区  · 6 年前

    我在生产服务器上有一个系统,我想在本地模拟它来更新它,但是以前的程序员使用了一个奇怪的架构。有一个编码器点火器架构和另一个在第一个。。。

    • 应用
      • 管理员(哪些内容控制器和模型。。。可能未使用)
      • 通用(语言和模型…)
      • js(为什么在这里…)
        • 缓存,配置,控制器,核心,帮助程序,模型,视图。。。
      • 用户
        • 缓存,配置,控制器,核心,帮助程序,模型,视图。。。
    • 系统

    我很高兴在我的本地机器上模拟这个,因为所有的路径都是绝对的,是的。 所以目前,它在我的本地主机上,配置正确,但当我尝试登录时,页面只是重新加载。我发现了控制器登录的方法(所以 kanri/login/login )被调用但总是被路由到 kanri/login/index .

    kanri/登录/登录 方法,因此即使是简单的重定向也不起作用。

    文件kanri/route.php:

    defined('BASEPATH') OR exit('No direct script access allowed');
    $route['default_controller'] = 'login';
    $route['404_override'] = '';
    $route['translate_uri_dashes'] = FALSE;
    

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^kanri(/(.*))?$ kanri.php?/$2 [L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^user(/(.*))?$ user.php?/$2 [L]
    </IfModule>
    

    我的控制器:

    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');
    
    class MY_Controller extends CI_Controller {
    
    public function __construct()
    {
        parent::__construct();
    
        if($this->session->userdata('flag_admin_login')===FALSE || empty($this->session->userdata('flag_admin_login'))){
            //print "***".$this->session->userdata('member_id')."!!!!!";
            redirect('/', 'refresh');
        }
    }
    }
    

    我的登录控制器:

    class Login extends CI_Controller {
        public function __construct()
        {
            parent::__construct();
            echo $this->router->fetch_class() . "<br/>"; // display the controller
            echo $this->router->fetch_method() . "<br/>"; //display the method
        }
    
        public function index(){
            //all code commented
        }
    
        public function login(){
            //all code commented
        }
    } 
    

    谢谢你的时间!

    1 回复  |  直到 6 年前
        1
  •  0
  •   Eiji    6 年前

    解决办法很简单。。。

    $config['uri_protocol'] = 'REQUEST_URI';
    $config['enable_query_strings'] = FALSE;