我在我的项目中使用了CI3 HMVC。现在,我面临路由问题。我希望用户输入 www.demosite.com 它会自动调用我的主模块。我不想像 www.demosite.com/home 那样表现出来。我想像 www.demo.com 一样显示网址。 为此,我在应用程序/配置/路由中设置默认控制器,如下所示;
$route['default_controller'] = "home";
同样在我的内容模块中,我添加了一个路由文件夹,我在其中写了
$route['home'] = 'home';
这是我的.htaccess。
AddType text/x-component .htc
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond $1 !(index.php|assets/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
这是我的家庭控制器
class Home extends MX_Controller{
function __construct(){
parent::__construct();
}
function index($stub=""){
$baseUrl=base_url();
$this->load->helper("url");
echo $this->_showHomepage();
}
}
但是,当我运行这个时。我收到 404 错误。 我该怎么做才能解决这个问题?提前谢谢。
HMVC应该是这样的
这只采用不允许目录的方法 所以默认控制器在控制器下
$route['default_controller'] = 'pages/pages/view';
$route['default_controller'] = 'pages';
索引是调用的默认方法。
$route['home'] = 'authentication/home/index';
$route['home'] = 'authentication/home';
而且您需要更改.htaccess文件以匹配该网址
URI 路由 : https://codeigniter.com/user_guide/general/routing.html#examples
更新:
(defined('BASEPATH')) OR exit('No direct script access allowed');
class Site extends MY_Controller {
function __construct() {
parent::__construct();
}
function index() {
$this->load->view('url');
}
}
我解决了。我将主文件夹从模块文件夹移动到控制器文件夹,然后,它才开始工作