简体   繁体   中英

Codeigniter: 404 on calling controller

Accessing Url- http://localhost:82/admin/login Then- I am getting 404 "Page not found error" ie-

Object not found!

The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

If you think this is a server error, please contact the webmaster.

Error 404

localhost Apache/2.4.9 (Win32) OpenSSL/0.9.8y PHP/5.4.27

My config.php

 $config['base_url'] = 'http://localhost:82/admin'; /* |-------------------------------------------------------------------------- | Index File |-------------------------------------------------------------------------- | | Typically this will be your index.php file, unless you've renamed it to | something else. If you are using mod_rewrite to remove the page set this | variable so that it is blank. | */ $config['index_page'] = ''; /* |-------------------------------------------------------------------------- | URI PROTOCOL |-------------------------------------------------------------------------- | | This item determines which server global should be used to retrieve the | URI string. The default setting of 'REQUEST_URI' works for most servers. | If your links do not seem to work, try one of the other delicious flavors: | | 'REQUEST_URI' Uses $_SERVER['REQUEST_URI'] | 'QUERY_STRING' Uses $_SERVER['QUERY_STRING'] | 'PATH_INFO' Uses $_SERVER['PATH_INFO'] | | WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded! */ $config['uri_protocol'] = 'REQUEST_URI'; 

My routes.php

 $route['default_controller'] = 'admin/index'; $route['404_override'] = ''; //$route['translate_uri_dashes'] = FALSE; /*admin*/ //$route['admin'] = 'user/index'; //$route['admin/signup'] = 'user/signup'; //$route['admin/create_member'] = 'user/create_member'; $route['admin'] = 'admin'; //$route['admin/logout'] = 'admin/logout'; $route['package'] = 'package'; 

My controller Admin.php

 <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Admin extends CI_Controller { /** * Index Page for this controller. * * Maps to the following URL * http://example.com/index.php/admin * - or - * http://example.com/index.php/admin/index * - or - * Since this controller is set as the default controller in * config/routes.php, it's displayed at http://example.com/ * * So any other public methods not prefixed with an underscore will * map to /index.php/welcome/<method_name> * @see https://codeigniter.com/user_guide/general/urls.html */ function __construct() { parent::__construct(); $this->load->helper('url'); $this->load->helper('form'); $this->load->model('LoginModel'); $this->load->library('session'); } public function index() { if($this->session->userdata('is_logged_in')){ redirect('package/packages'); }else{ $this->load->view('admin/admin'); } } function __encrip_password($password) { return md5($password); } /** * check the username and the password with the database * @return void */ public function login() { echo "hi"; exit; $user_name = $this->input->post('username'); $password = $this->__encrip_password($this->input->post('password')); $is_valid = $this->LoginModel->validate($user_name, $password); if($is_valid) { $data = array( 'user_name' => $user_name, 'is_logged_in' => true ); $this->session->set_userdata($data); redirect('package/package'); } else // incorrect username or password { $data['message_error'] = TRUE; $this->load->view('admin/admin', $data); } } /** * The method just loads the signup view * @return void */ } 

May be you have .htaccess as your controller seems fine and still you are getting this answer. please try to add .htaccess in your root directory.

routes.php

$route['default_controller'] = 'admin/index';

guess it should be ?

$route['default_controller'] = 'admin';

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM