要望や症状
EC-CUBE 4系において、ログアウトボタンを押した際にトップページではなく、特定のページにリダイレクトしたいという要望があります。デフォルトの設定では、ログアウト後は必ずトップページに遷移する仕様となっており、ログインページや他の特定のページに誘導したい場合には設定の変更が必要となります。
理由や原因
EC-CUBE 4系では、ログアウト時のリダイレクト先は app/config/eccube.packages/security.yaml ファイルの logout セクション内にある target パラメータによって制御されています。
初期状態では target: homepage が設定されており、この設定によりログアウト後は必ずトップページにリダイレクトされる仕組みになっています。カスタマイズを行うには、この target パラメータの値を変更する必要があります。
解決策
設定変更の手順
1. 設定ファイルの編集
app/config/eccube.packages/security.yaml ファイルを開いて編集します。
2. target パラメータの変更
logout セクションの target パラメータを変更します。以下は変更例です。
# 変更前(デフォルト設定)
logout:
path: logout
target: homepage
# 変更後(ログインページへリダイレクトする場合)
logout:
path: logout
target: login
3. ファイルの保存とキャッシュクリア
変更を保存した後、以下のコマンドでキャッシュをクリアします。
bin/console cache:clear
リダイレクト先の設定パターン
ルート名での指定
target: login # ログインページ
相対パスでの指定
target: '/user_data/page' # 管理画面で作成したページなど
外部URLでの指定
target: 'https://example.com/logout-complete' # 外部サイト
注意事項とポイント
バックアップの取得
設定変更前には必ず security.yaml ファイルのバックアップを取得してください。
アップデート時の影響 この方法は本体ファイルの直接編集となるため、EC-CUBEのアップデート時に設定が初期化される可能性があります。アップデート後は設定を再確認し、必要に応じて再設定を行ってください。
動作確認 設定変更後は、実際にログアウト操作を行い、期待通りのページにリダイレクトされることを確認してください。