アクセスURLによってコントローラやビューの振り分けを行いたく、bootstrap.phpに以下のような設定を行いました。CakePHPのバージョンは2.10.18です。
if (preg_match('/admin/', $_SERVER['REQUEST_URI'])) { App::build(array( 'Controller' => array( ROOT.DS.APP_DIR.DS.'Controller'.DS.'Admin'.DS ), 'Model' => array( ROOT.DS.APP_DIR.DS.'Model'.DS.'Admin'.DS ), 'View' => array( ROOT.DS.APP_DIR.DS.'View'.DS.'Admin'.DS ), )); } else { App::build(array( 'Controller' => array( ROOT.DS.APP_DIR.DS.'Controller'.DS.'Common'.DS ), 'Model' => array( ROOT.DS.APP_DIR.DS.'Model'.DS.'Common'.DS ), 'View' => array( ROOT.DS.APP_DIR.DS.'View'.DS.'Common'.DS ), )); }
URLに”admin”が入っていればディレクトリ”Admin”を参照し、入ってなければディレクトリ”Common”を参照するようにしたいのですが、一定確率でこれが反映されません。初めのうちは正しく参照してくれるのですが、何度もアクセスを繰り返していると時々参照がおかしくなる、という状況です。
デバッガで追うと分岐はできているのでURL判定の問題ではないと思いますが、App::buildが反映されていないようです。とくに”Admin”系を表示したあと”Common”系にアクセスすると”Admin”系に流れてしまうので、キャッシュがらみの問題かな…と。
この問題について解決策や何かお気づきの点がある方がいらっしゃいましたら、アドバイスいただけますと幸いです。よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/14 08:40 編集