お世話になっています。
多言語サイトを作成していて
全ページURLの最後にjp/、en/とパラメータをつけて判断しようと思うのですがうまくいきません。
パラメータがない場合はエラーもしくはjp/にリダイレクトをかけたいです。
routes.php
Router::connect('/', array('controller' => 'Top'));
Router::connect('/news/:lang', array('controller' => 'News', array('lang' => '[a-z]+')));
Router::connect('/:lang', array('controller' => 'Index', array('lang' => '[a-z]+')));
TopControllerは
http://ドメインだったらhttp://ドメイン/jp/にリダイレクトするだけ(IndexController)
IndexControllerは
パラメータでviewの切り替え(日本語、英語)
URL http://news/とパラメータを渡さなかった場合
IndexControllerが呼ばれてしまいます。
なのでエラーもしくはhttp://news/jp/にリダイレクトをかけようと思うのですが
いい案などがあればお聞かせください。
宜しくお願いします。
修正しました。
URL http://ドメイン/news/とパラメータを渡さなかった場合
IndexControllerが呼ばれてしまいます。
URL http://ドメイン/news/とパラメータを渡さなかった場合
IndexControllerが呼ばれてしまうのでここをどうにかしたいです。
エラーでもリダイレクトでもいいので宜しくお願いします。
コメント(1件)
Router::connect('/', array('controller' => 'Top'));
Router::connect('/news/:lang', array('controller' => 'News', array('lang' => '[a-z]+')));
Router::connect('/:lang', array('controller' => 'Index', array('lang' => '[a-z]+')));
変更
routes.php
Router::connect('/', array('controller' => 'Top'));
Router::connect('/news/:lang', array('controller' => 'News', array('lang' => 'jp$|en$|ch$')));
Router::connect('/:lang', array('controller' => 'Index', array('lang' => 'jp$|en$|ch$')));