添加新控制器的代码点火器给出404


codeigniter adding a new controller gives 404

每次,当我尝试在CodeIniter中添加新控制器时,我都会得到以下结果:

404找不到页面

找不到您请求的页面。

carsadmin.php:

 if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 class Carsadmin extends Base_Controller {
       public function index(){
    echo 'Hello World!';
   }
 }

你知道为什么会这样吗?我需要更改路由文件吗?

$route['default_controller'] = "welcome";
$route['404_override'] = '';
$route['^(en|ar|ru)/pages/(.+)$'] = 'pages/index/$2';
$route['^(en|ar|ru)/profile/([0-9]+)$'] = '/profile/index/$2';
$route['^(en|ar|ru)/admin$'] = 'admin/dashboard';
$route['^(en|ar|ru)/(.+)$'] = "$2";
$route['^(en|ar|ru)$'] = $route['default_controller'];

试试看:-

<?php
class Carsadmin extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        $this->load->model('news_model');
    }
    public function index()
    {
        echo 'Hello World!';                   
            die;
    }

}
?>

YOu将需要一个写有以下内容的htaccess文件。

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

问题是,可以通过在URL中添加/索引,然后添加控制器名称来访问控制器。

因此,您需要一个htaccess文件来删除该问题。

如果使用codeigniter v4.2.11首先,您应该通过路径创建新的控制器app/Controllers/Castadmin.php

<?php
    namespace App'Controllers;
    class Carsadmin extends BaseController {
        public function index()
        {
            echo "<h1>Hello World!</h1>";
        }
    }
?>

现在打开文件app/Config/Routes.php并添加新的路由

$routes->get('carsadmin', 'Carsadmin::index');

现在在浏览器中打开您的链接

http://yousite.com/carsadmin  or  http://yousite.com/carsadmin/index