Reputation: 35
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
Upvotes: 3
Views: 33236
Reputation: 1
I had that problem but It coused by moving project from window to linux, I solve this by writing the controller as it is. example http://localhost/AppController/blog instead of using http://localhost/appcontroller/blog thanks!
Upvotes: -1
Reputation: 890
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]
Upvotes: 0
Reputation: 451
$config['base_url'] = '';
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Upvotes: 2
Reputation: 888
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]
Upvotes: 7
Reputation: 2880
Check the uri_protocol in the config file that should be AUTO.
Config/config.php ===> $config['uri_protocol'] = 'AUTO';
Upvotes: 0