Welcome Guest, Not a member yet? Register   Sign In
codeigniter 4 page404
#1

(This post was last modified: 05-26-2022, 07:46 AM by devo.)

hii guys i try to make redirect to home page if the url is not defind / 404, but it not redirect

what i try is like this

in app/config/route.php
PHP Code:
<?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('DashboardController');
$routes->setDefaultMethod('index');
$routes->setTranslateURIDashes(false);
$routes->set404Override('App\Controllers\Page404Controller::index');
$routes->setAutoRoute(false);

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

// We get a performance increase by specifying the default
// route since we don't have to scan directories.
$routes->get('/dashboard''DashboardController::index');
$routes->get('/''SigninController::index');

/*
 * --------------------------------------------------------------------
 * 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';

and in app/Controllers/Page404Controller.php

PHP Code:
<?php

namespace App\Controllers;

use 
App\Controllers\BaseController;

class 
Page404Controller extends BaseController
{
    public function index()
    {
        // $args = $this->request->uri->getSegments();
        return redirect()->to('/');
    }

Reply
#2

Before version 4.2 this will not work.
You can use this solution.
By specifying the route last.

PHP Code:
$routes->addRedirect('(:any)''/'); 
Reply
#3

(05-26-2022, 03:58 PM)iRedds Wrote: Before version 4.2 this will not work.
You can use this solution.
By specifying the route last.

PHP Code:
$routes->addRedirect('(:any)''/'); 

i use version 4.1.9
PHP Code:
<?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('DashboardController');
$routes->setDefaultMethod('index');
$routes->setTranslateURIDashes(false);
$routes->set404Override('App\Controllers\Page404Controller::index');
$routes->setAutoRoute(false);

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

// We get a performance increase by specifying the default
// route since we don't have to scan directories.
$routes->get('/''SigninController::index');
$routes->get('/dashboard''DashboardController::index');
$routes->post('/authenticate''SigninController::authenticate');

$routes->addRedirect('(:any)''/'); //this is the default redirect
/*
 * --------------------------------------------------------------------
 * 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';

you mean like that?
Reply
#4

Yes but make sure you download the CodeIgniter Development version from GetHub.
What did you Try? What did you Get? What did you Expect?

Joined CodeIgniter Community 2009.  ( Skype: insitfx )
Reply
#5

(This post was last modified: 05-27-2022, 12:48 AM by devo.)

(05-27-2022, 12:18 AM)InsiteFX Wrote: Yes but make sure you download the CodeIgniter Development version from GetHub.

what's different??
before i download zip from codeigniter website
Reply




Theme © iAndrew 2016 - Forum software by © MyBB