EC-CUBE新規ページのURLのuser_dataの変更で気をつける点がありますか?

  • EC-CUBE4系
投稿日:2026/01/05

概要


EC-CUBE 4系では、新規作成したページ※のURLに含まれる user_data の部分を、.envや環境変数の ECCUBE_USER_DATA_ROUTE で変更できます。しかし、変更した場合にcanonicalが意図しない値になるケースがあり、meta.twig の調整が必要になることがあります。
※ 管理画面のコンテンツ管理>ページ管理にて新規作成ボタンを押下して作成したページ

URLの user_data は変更できる


4系では.envや環境変数の ECCUBE_USER_DATA_ROUTE で、新規ページのURLパスを変更できるようになっています。
例)user_data を .env で contents に変更したい場合、以下の記述を追加します。
ECCUBE_USER_DATA_ROUTE=contents

そうすると、管理画面のコンテンツ管理>ページ管理の「新規作成」や各ページの編集のURLも変わっていることが確認できます。

canonical の注意点と現象


ECCUBE_USER_DATA_ROUTE を変更して新規に作成したページをブラウザで開いて、ソースを確認しcanonicalを確認します。
APP_ENV=dev の設定でシステムエラーが起きたり、APP_ENV=prod でも以下のように意図しないcanonicalが出力される場合は調整が必要です。
例)意図しない内容
<link rel="canonical" href="http://example.com/?route=test404?bind=contents" />

※ ドメイン部分は例です。上記で想定されていた本来の内容は以下です。
<link rel="canonical" href="http://example.com/contents/test" />


調整方法(meta.twigの修正)


エラーや意図しない状況が発生している場合、以下にある meta.twig ファイルを確認します。
/src/Eccube/Resource/template/default/meta.twig

以下の部分がないかを確認し、修正します。
{% set meta_canonical = url(eccube_config.eccube_user_data_route, {'route': Page.url}) %}

【修正の理由】

eccube_config.eccube_user_data_route には .env の設定値(例: contents)が入りますが、url 関数はこれを ルート名 として処理します。
しかし、contents というルート名は Controller に定義されていません。
新規ページの本来のルート名は user_data であるため、これを url 関数に直接指定するように変更します。

【修正後の記述】

{% set meta_canonical = url('user_data', {'route': Page.url}) %}
関連カテゴリ