CMS:複数の動的ページ URL を固有にする

読了時間:3分
作成する動的ページにはそれぞれ固有の URL が必要です。動的ページの URL には動的セクションと静的セクションがあることにご注意ください。これらのセクションは、固有性に異なる影響を与えます。

  • 静的セクション:URL の静的セクションのコンテンツは固有性にカウントされます。たとえば、recipes/menu/{meal} は固有ですが、recipes/Menu/{meal}Menumenu とは異なるため固有です。
  • 動的セクション:URL 内のセクションとその位置は固有性にカウントされますが、参照するフィールドにはカウントされません。たとえば、recipes/menu/{meal}recipes/menu/{course} と比べて固有ではありません。これは両方とも recipes/menu を含み、その後に単一の動的セクションが続くためです。1つのケースでは、動的セクションは meal フィールドでフィルターし、course フィールドの別のフィルターは URL の固有性に影響しないという事実が関係します。しかし、動的セクションは URL 内の別の場所に表示されるため、recipes/menu/{meal}recipes/{meal}/menu と比べて固有です。1つの URL はもう1つの URL よりも1つ多く動的セクションを持っているので、recipes/menu/{meal}recipes/menu/{meal}/{course} と比べて固有です。

これが動的ページの設定方法にどのような影響を与えるか見てみましょう。レシピコレクションのあるレシピサイトがあるとします。コレクションにはレシピ情報を含むフィールド以外に、朝食、ランチ、またはディナーかを示す meal フィールドがあります。また、コレクションには前菜、メイン、またはデザートかを示す course フィールドもあります。

たとえば、次のような URL を使用してレシピの動的アイテムページを作成するとします:


次に、meal フィールドに基づいてレシピを表示する動的リストページを作成します。以下のような URL を定義するとします:


ただし、この URL を使用してページを作成しようとすると、URL が固有ではないため使用できないというエラーが表示されます。これは両方の URL が recipes/{some-dynamic-field} という同一パターンに従っているからです。動的フィールドのコンテンツは固有性にカウントされないため、mealTitle は同一として見なされます。
注意:
URL の静的部分のみが大文字小文字で区別されます。

URL を編集して固有にする

URL を固有にするには、手動で編集し、既存の静的セクションを追加または変更する必要があります。URL をクリックして編集するとき、追加した動的セクションは { } で囲まれ、次のようになります:http://www.../recipes/{meal}

動的リストページを作成するときは、そのカテゴリを URL に手動で追加して、固有にすることをおすすめします。たとえば、meal ページの URL は http://www.../recipes/meals/{meal}、そして course ページの URL は http://www.../recipes/courses/{{course}} です。

これにより、朝食の料理ページの実際の URL は http://www.../recipes/meals/breakfast、そしてメインコースページの URL は http://www.../recipes/courses/main になります。

ただし、既存の動的セクションを変更したり、URL にサイト名の後に必要なものを追加して固有にすることができます。

構成された URL が固有であることを確認する

特定の動的ページの URL はコレクション内のデータから算出されるため、動的ページ URL を構成するフィールドのコンテンツが固有であることが必須です。たとえば、カップケーキのレシピが複数あり、そのタイトルフィールドがすべて「カップケーキ」と表示されている場合、それらに算出される URL はすべて同じになります。これにより、どの動的ページが表示されているかわからないという状況が発生します。

URL の動的部分は、大文字と小文字が区別されないことにご注意ください。つまり、「cupcakes」というレシピと「Cupcakes」というレシピがもう1つある場合、URL がどのように表示されようが、いずれか 1つのレシピのみが表示されます。

お役に立ちましたか?

|