2016-12-31 5 views
0

Я пытаюсь вызвать мой контроллер с другого контроллера с использованием перенаправления, как так ..контроллер 404 вопрос в 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, это время, когда я получаю эту проблему. Спасибо.

+0

Попробуйте с http: //localhost/piercapitan/index.php/Navigation. Капитал «N», скажите мне, это работает или нет? и попробуйте с этим также http: //localhost/piercapitan/index.php/navigation/index. и http: //localhost/piercapitan/index.php/Navigation/index и попробуйте выше трех случаев и скажите, что он все еще показывает 404? – Bhavin

+0

localhost/piercapitan/index.php/Navigation -> это сработало для меня .. Как мне изменить свой код, чтобы отразить это? – Ibanez1408

ответ

1

Изменение от

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

в

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

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

также изменяются от

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

в

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

или

redirect(base_url('navigation'));

Вы должны автозагрузку помощник URL-адрес в файле 'приложение/Config/autoload.php'

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

просто попробовать это в

application/config/config.php

$config ['index_page'] = ''; 
Смежные вопросы