1

在 CodeIgniter 的执行中是否有任何一点我可以通过 MySQL 从 MySQL 获取数据HTTP_HOST并使用和设置base_url检索到的数据以便强制执行正确的路由?

post_controller_constructor当我只使用sub.domain.comdomain.com时,我在钩子事件下运行它没有任何问题,但是当我希望base_url作为domain.com/folder/时出现这个问题。

我的 Codeigniter 已经决定要加载哪个控制器,并且更改base_url并不能解决它。

据我所知,我不能在钩子事件之前执行 MySQL 命令post_controller_constructor,我想我必须能够这样做,因为base_url应该在路由发生之前设置。

所以基本上,有没有任何有效的方法可以在执行中间重新路由,或者在路由发生之前运行 mysql?

CodeIgniter 钩子

更新
好像我走错了路。

这是场景:

我有一个 CodeIgniter 包/集。目前我通过多个域和子域使用它。我的 CodeIgniter 基于HTTP_HOST. 我已经让它也加载相关的配置文件,以防它包含域的文件夹。问题是发生路由并将文件夹视为控制器/路由的一部分而不是base_url。

使用地址http://domain.com/folder/admin我希望admin加载控制器(内部controllers/),而不是控制器folder

在某种程度上,我想得出结论,base_url 的整个部分将在路由过程中被排除。

它类似于$route['\w+/(.+)'] = '$1';但基于 MySQL。

4

1 回答 1

0

base_url与路由无关,只有 URL。

您可以使用pre_controller钩子、post_controller_constructor钩子或在基本控制器__construct(例如MY_Controller)中运行它。

这很容易:

// Fetch base_url from database...
$this->config->set_item('base_url', $new_base_url);

base_url()从 CI 数组中读取等功能$config,因此您可以随时更改它。

于 2012-06-19T13:34:24.593 回答