たまに実験で操作すると動かない!となるのでメモとして。
前提
- Shopifyの開発ストア使用
- 「URLリダイレクト」を使用して商品のURLを別のURLにリダイレクトする
上記前提で、状況によってはリダイレクトが動かないことがあります。
対応策
Remember, the URL Redirects only work when redirecting from a URL that results in a 404 error.
対応策という程のものでもなく、仕様上「リダイレクトの効果は404エラーのページにのみ有効」とのことです。
リダイレクトが有効な状態
商品ページを例に挙げ、ページの状態とリダイレクトの状態を確認すると以下のようになります。
ページの状態 | リダイレクト |
---|---|
アクティブ | 動作しない |
下書き | 動作しない |
オンラインストアを解除 | 動作する |
削除 | 動作する |
想定外だったのが下書き状態の場合です。
商品を残した状態でリダイレクトを行う場合、下書きへの変更ではなく販売チャネルのオンラインストアを解除する必要があります。
独自ドメイン設定時に別の独自ドメインに変更する場合
- Solved: Re: Redirecting from old domain (WIX) to new domain (Shopify) – Shopify Community
- Shopifyのリダイレクト設定の方法。リダイレクトの意味や種類も解説 – コマースメディア株式会社
※「新旧両方のドメインをShopifyへ接続・設定する」の箇所が該当
実際に試していないので調査メモ的な情報ですが、上記を踏まえれば以下のように言えるはずです。
- 新ドメインをShopifyに追加し、DNSもShopifyの値で設定する
- Shopifyでプライマリドメインとして新ドメインを選ぶ
「既存ドメインに接続」は上記を一つの操作、つまり、新ドメインの追加とプライマリードメインの設定を同時に行う処理だと考えられます。
ドメイン以降のサブディレクトリやハンドル
https://example.com/products/my-item
上記のようなURLが想定されますが、この時の/products/my-itemというサブディレクトリやファイル名(Shopifyではハンドルと呼称)に関しては以下のようになります。
- ドメインが変わるだけでサブディレクトリやファイル名が変わらないなら、個別にリダイレクトを設定する必要はない
これは既に記載しましたShopifyの「URLリダイレクト」の動作条件を前提にして以下のような流れで推測できます。
- ドメインが変わった時点で、新ドメインの/products/my-itemにアクセスできる
- アクセス可能なら/products/my-itemは404にならない
- 404にならないならリダイレクトも動作しない
ヘルプの補足
各マーケットでお客様を異なるページにリダイレクトする場合、Johnさんは各サブフォルダーごとに個別のリダイレクトを作成することもできます。
上記だけ見ますと、言語用サブフォルダー単位でリダイレクトが可能なように読めまそうですが、Shopifyサポートに確認したところ、そのような機能はないとのことです。[2024.7に確認]
以下のように言語用サブフォルダーをリダイレクト元に記述し動作させられることを、「各サブフォルダーごとに個別のリダイレクトを作成する」と書いているに過ぎませんでした。
// リダイレクト元に以下を入力することで、英語の特定ページを指定してリダイレクトできる
/en/pages/page1
// 以下のように/en/以下をまとめて指定するような方法には対応していいない
/en/*
部分/前方/後方一致指定は不可
前項を踏まえると以下のような状態と言えます。
- Shopify標準のリダイレクト設定には、ワイルドカードなどを用いた部分/前方/後方一致によるURL指定を実行する仕組みはない
- リダイレクト元と先を1対1の関係で1URLずつ設定する必要がある
結び
実験的にリダイレクトを試そうとした際に遭遇しやすいのですが、頻繁に行うものでもないので焦ります。
3人がこの記事を評価
役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。
連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。