找不到CodeIgniter对象只有索引函数有效

I am new to CodeIgniter, everything was going fine and well up until I found out that I can only make a call to the index() function.

I have setup the config.php, autoload.php and routes.php as expected.

on the config.php

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

on the autoload.php

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

on the routes.php

$route['default_controller'] = "site";

I have a controller named site

<?php

    class Site extends CI_Controller{

        function index(){
            $this->load->view('home');
        }

        function new_method(){
            $this->load->view('home2');
        }
    }
?>

I have to 2 files on the view folder with their HTML code, simply named home.php and home2.php

on home.php I have

<?php 
    echo form_open('site/new_method');
    echo form_submit('submit', 'call method'); 
    echo ('<br /><br />');
    echo anchor('site/new_method', 'call method');
    echo form_close();
?>

The index() loads, as results U get a button and a link but when I click I am given Object not found! Error 404

  1. You can make this empty $config['base_url'] = '';
  2. Check .htaccess in root folder with index.php file
  3. Check mod_rewrite apache module is enabled

RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]

Check the uri_protocol in the config file that should be AUTO.

Config/config.php ===> $config['uri_protocol']  = 'AUTO';

Follow the steps that Furqan mentioned, but if that doesn't work, try this in your .htaccess file (in the root of your project):

RewriteEngine on
RewriteCond $1 !^(index\.php|assets|images|js|css|uploads|favicon.png)
RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^(.*)$ ./index.php/$1 [L]

create a .htaccess file inside your root directory and write the below code there.

DirectoryIndex index.php

Options -Indexes

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?/$1 [L,QSA]