1

CodeIgniter の実行中に、MySQL からデータを取得しHTTP_HOST、取得したデータを使用および設定しbase_urlて、正しいルーティングが適用されるポイントはありますか?

sub.domain.comdomain.compost_controller_constructorのみを使用した場合、フックイベントの下でこれを実行しても問題はありませんでしたが、 domain.com/folder/として使用したい場合はこの問題が発生します。base_url

私の Codeigniter は、ロードするコントローラーを既に決定しており、変更しbase_urlても修正されません。

私の知る限り、フック イベントの前に MySQL コマンドを実行することはできません。これは、ルーティングが発生する前に設定する必要があるpost_controller_constructorため、できるはずです。base_url

基本的に、実行の途中で再ルーティングするか、ルーティングが発生する前にmysqlを実行する効率的な方法はありますか?

CodeIgniter フック

更新
私は間違った軌道に乗っていたようです。

シナリオは次のとおりです。

CodeIgniter パッケージ/セットが 1 つあります。現在、複数のドメインとサブドメインで使用しています。私の CodeIgniter は、に基づいて関連するプロファイルをロードしますHTTP_HOST。ドメインへのフォルダーが含まれている場合に備えて、関連するプロファイルもロードするようにしました。問題は、ルーティングが発生し、フォルダーが base_url ではなくコントローラー/ルーティングの一部として表示されることです。

アドレスhttp://domain.com/folder/adminでは、 controller ではなく、コントローラーを ( 内に )ロードadminします。controllers/folder

何らかの方法で、base_url の全体がルーティング プロセスで除外されるという結論を導き出したいのです。

似て$route['\w+/(.+)'] = '$1';いますが、MySQL に基づいています。

4

1 に答える 1

0

base_urlURL のみで、ルーティングとは関係ありません。

フックを使用したり、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 に答える