リダイレクト先の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

ECCUBE制作トップへ

EC-CUBEカスタマイズに関するお問い合わせはこちら

    脆弱性修正