0

Q:多言語サイトを持っています。ベースURLをチェックして言語が自動的に切り替わる場合は、www.myapp.fr(フランス語の場合)とwww.myapp.es(スペイン語の場合)を想定します。それに応じて、ヘルパー関数を使用して$ this-> config-> set_item('base_url'、$ domain)を実行します。私の質問は、ユーザーが間違ったURL www.domain.esでフランス語のサイトを見ることに閉じ込められないように、ヘルパー関数をどこに配置すればよいかということです。MY_Controllerコンストラクター?

(*)通常、peolpeには多言語サイトのドメイン名が1つあります。私の場合、2つのドメイン名がそれを指している同じホスティングがあります。ユーザーリクエストのuriに基づいて、切り替えを行います。私はこれを行うウェブサイトを書き直していて、うまく機能しています。しかし、base_urlが適切に切り替えられず、ユーザーがドメインESにいる間に言語FRでナビゲートしているため、いくつかの問題があったことを覚えています(例)。当時、私は各コ​​ントローラーにヘルパーがいなかったし、DRYの良い習慣もなかったので、これが問題だったと思います。しかし、90%はうまくいきました!

ヒントは大歓迎です;D

どうもありがとう

4

1 に答える 1

1

base_urlを自分で設定しないでください。

CI 2.0以降では、base_urlを設定する必要はありません。

このコードを使用してbase_urlを設定できます

$config['base_url'] = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 'https://' : 'http://' . $_SERVER['HTTP_HOST'];

これで、base_urlから解放されました。ドメイン名に基づいて使用する言語を決定するためのフックを持つことができます。

于 2011-05-18T10:48:35.493 に答える