簡體   English   中英

Codeigniter中的控制器404問題

[英]Controller 404 issue in codeigniter

我試圖像這樣使用重定向從另一個控制器中調用我的控制器。

歡迎控制器

public function login(){
    $rules=array(
        array(
            'field'=>'username',
            'label'=>'Username',
            'rules'=>'required|trim'
        ),
        array(
            'field'=>'password',
            'label'=>'Password',
            'rules'=>'trim|required'
        ),
    );
    $this->form_validation->set_rules($rules);
    if($this->form_validation->run()==TRUE){
        $data=array(
            'username'=>$this->security->xss_clean($this->input->post('username')),
            'password'=>$this->security->xss_clean($this->input->post('password'))
        );
        $account_details=$this->users_model->getCredentials($data);

        if($account_details->num_rows()==1){
            $account_details=$account_details->result();
            $this->session->set_userdata(array('username'=>$account_details[0]->username));
            redirect(site_url('navigation'),'refresh');
        }else{
            $this->session->set_flashdata('message','Wrong username or password.');
            $this->show_login();
        }
    }else{
        $this->session->set_flashdata('error',validation_errors());
        $this->show_login();
    }
}

導航控制器

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

Class Navigation extends CI_Controller{

    public function __construct(){
        parent::__construct();
        $this->load->model('Users_access_model');
    }

    public function index(){
        $data['links']=$this->Users_access_model->get_links($this->session->userdata['username']);
        $this->load->view('common/header');
        $this->load->view('common/view_navigation');
        $this->load->view('common/scripts');
    }
    }

     ?>

這出現在我的地址欄中

http://localhost/piercapitan/index.php/navigation

我明白了

404 Page Not Found

The page you requested was not found.

這是在我的配置中

$config['base_url'] = 'http://localhost/piercapitan/';

這是我的.htaccess

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

我以前使用過重定向,但是我從Windows機器上使用過重定向,但是當我轉移到Ubuntu時,這就是我遇到此問題的時間。 謝謝。

$config['base_url'] = 'http://localhost/piercapitan/';

$config['base_url'] = (isset($_SERVER['HTTPS']) ? "https://" : "http://") . $_SERVER['HTTP_HOST'] . preg_replace('@/+$@', '', dirname($_SERVER['SCRIPT_NAME'])) . '/';

$config['base_path'] = $_SERVER['DOCUMENT_ROOT'] . preg_replace('@/+$@', '', dirname($_SERVER['SCRIPT_NAME'])) . '/';

也從

redirect(site_url('navigation'),'refresh');

redirect('/navigation','refresh'); 

要么

redirect(base_url('navigation'));

您將需要在文件“ application / config / autoload.php”中自動加載網址幫助器

$autoload['helper'] = array('url');

嘗試一下

application / config / config.php

$config ['index_page'] = '';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM