php - codeingter3 HMVC 'default_controller' 不工作
问题描述
我在我的项目中使用 CI3 HMVC。现在,我面临路由问题。我希望用户键入 www.demosite.com,它会自动调用我的主模块。我不想显示像 www.demosite.com/home。我想显示像 www.demo.com 这样的网址。为此,我在 application/config/routes 中设置了默认控制器,如下所示;
$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';
index 是调用的默认方法。
$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');
}
}
推荐阅读
- rust - Rust 零拷贝生命周期处理
- c++ - 在双端队列 C++ 中擦除多个元素
- ios - 目标完整性问题:“为 iOS 构建,但嵌入式框架‘X.framework’是为 iOS 模拟器构建的”
- makefile - Makefile、ifdef 和计算变量
- xslt - XSLT - 根据同一级别的另一个元素的值在某个位置插入元素
- python - Python:通过引用将类成员项传递给其成员函数之一
- python - 如何授予其他 PC 将数据添加到我的数据库中 MySQL.in 我的计算机的权限
- python - 运行 selenium 后获取请求授权令牌
- php - 无法使用 Laravel Backpack 权限访问角色和权限的路由
- artifactory - 无法访问 Jfrog Artifactory URL