リダイレクト先のURLはどこで指定されているのか?
ログイン後、ログアウト後のリダイレクト先の指定は、app/config/eccube/packages/security.yaml に指定があります。次の場所でhomepageと記載されている部分がリダイレクト先です。
ログイン後:security.firewalls.customer.form_login.default_target_path
ログアウト後:security.firewalls.customer.logout.target
form_login: enable_csrf: true check_path: mypage_login login_path: mypage_login default_target_path: homepage username_parameter: 'login_email' password_parameter: 'login_pass' use_forward: false success_handler: eccube.security.success_handler failure_handler: eccube.security.failure_handler login_throttling: max_attempts: '%eccube_login_throttling_max_attempts%' interval: '%eccube_login_throttling_interval%' logout: path: logout target: homepage
「homepage」というのは、src/Eccube/Controller/TopController.phpで指定されているトップページのルート名(URLにつけられた名前のようなもの)です。
商品一覧ページに飛ばしたいならproduct_listと書けますし、マイページに飛ばしたいならmypageと書けます。
ルート名ではなくURLも指定可能?
ルート名で指定が難しい場合は、スラッシュから始めることでサイト内のパスを指定することもできます。
次のように書けばログイン後、/testというパスにリダイレクトします。
default_target_path: ‘/test’
Customizeディレクトリでもカスタマイズできる?
元のファイルを修正したくない場合は、Customizeディレクトリのservices.yamlに書くことで、挙動を変更できます。
security.ymlの変更したい部分だけを抽出して次のように書いてください。
ログアウト後に商品一覧ページにリダイレクトする書き方
app/Customize/Resource/config/services.yaml
security: firewalls: customer: logout: target: product_list
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。