Aqeel Ahmad
Aqeel Ahmad

Reputation: 31

CodeIgniter 4 Only default route / is accessible, no other route is working if i define in my Routes.php. I am using ubuntu

My .htaccess file inside app/.htaccess and project directory is here. Both are same. i am using the same .htaccess file which is present inside public directory in both app and project directoyr

Routes.php is here

<?php 
namespace Config;

// Create a new instance of our RouteCollection class.
$routes = Services::routes();

// Load the system's routing file first, so that the app and ENVIRONMENT
// can override as needed.
if (file_exists(SYSTEMPATH . 'Config/Routes.php'))
{
    require SYSTEMPATH . 'Config/Routes.php';
}

/**
 * --------------------------------------------------------------------
 * Router Setup
 * --------------------------------------------------------------------
 */
$routes->setDefaultNamespace('App\Controllers');
$routes->setDefaultController('Home');
$routes->setDefaultMethod('index');
$routes->setTranslateURIDashes(false);
$routes->set404Override();
$routes->setAutoRoute(true);

/**
 * --------------------------------------------------------------------
 * Route Definitions
 * --------------------------------------------------------------------
 */

// We get a performance increase by specifying the default
// route since we don't have to scan directories.
$routes->get('/test', 'Home::test');
$routes->get('/test', 'Home::test');
/**
 * --------------------------------------------------------------------
 * Additional Routing
 * --------------------------------------------------------------------
 *
 * There will often be times that you need additional routing and you
 * need it to be able to override any defaults in this file. Environment
 * based routes is one such time. require() additional route files here
 * to make that happen.
 *
 * You will have access to the $routes object within that file without
 * needing to reload it.
 */
if (file_exists(APPPATH . 'Config/' . ENVIRONMENT . '/Routes.php'))
{
    require APPPATH . 'Config/' . ENVIRONMENT . '/Routes.php';
}

On / it working fine. But on /test it give me error.

The requested URL was not found on this server. how can i fix this issue. My index.php is working fine.

Upvotes: 3

Views: 3802

Answers (2)

me.theblackz
me.theblackz

Reputation: 60

in your Home controller does it method that have a

return view('test');

or

echo view('test');

or you want to access folder test and viewed them? if so, check is there a folder name test inside View also a test.php inside folder test? if you done checking that and all exist then you can write the code like this

return view('/test/test');

or

echo view('/test/test');

since you don't show us a complete code, this is what i guess. hope this will solve the problem.

Upvotes: 0

bogdanmduca
bogdanmduca

Reputation: 66

Try this

$routes->get('/test', 'App\Controllers\Home::test');

But for this to work, you need to have a Controller named Home inside Controllers folder and also a method named test inside the controller.

Upvotes: 2

Related Questions