###前提・実現したいこと
CAKEPHP3のAuthコンポーネントを利用して、ログイン認証をしたいと思っております。
ただし、多言語に対応させる必要があり、URLとしてはhttps://www.hoge.com/jp/users/login
のようになることを想定しています。(「jp」部分にはその他「en」などの言語設定を表す文字列が入ります)
###発生している問題・エラーメッセージ
AuthコンポーネントのloginActionの設定でcontrollerとactionの指定をすることで
https://www.hoge.com/users/loginにリダイレクトはできるのですが、
https://www.hoge.com/jp/から認証の必要なページにアクセスしても
https://www.hoge.com/users/loginにリダイレクトされてしまい、
言語設定を表す「jp」が失われてしまいます。
これを言語設定つきのhttps://www.hoge.com/jp/users/login
へリダイレクトさせるためにはどのようにすればよいでしょうか?
よろしくお願いいたします。
###ルーティング設定
routes.phpは以下のように(全てではありませんが)記載しています。
$routes->connect('/:language/:controller/:action/*', ['controller' => null, 'action' => null], ['language' => 'jp']); $routes->connect('/:language/:controller/*', ['controller' => null, 'action' => 'index'], ['language' => 'jp']); $routes->connect('/:language/:controller/:action/*', ['controller' => null, 'action' => null], ['language' => 'en']); $routes->connect('/:language/:controller/*', ['controller' => null, 'action' => 'index'], ['language' => 'en']); $routes->connect('/:language/:controller/:action/*', ['controller' => null, 'action' => null], ['language' => 'ja_JP']); $routes->connect('/:language/:controller/*', ['controller' => null, 'action' => 'index'], ['language' => 'ja_JP']); $routes->connect('/:language/:controller/:action/*', ['controller' => null, 'action' => null], ['language' => 'en_US']); $routes->connect('/:language/:controller/*', ['controller' => null, 'action' => 'index'], ['language' => 'en_US']);
日本語ページへは/jpまたは/ja_JPでアクセスする想定です。
回答2件
あなたの回答
tips
プレビュー