oo

パターンリダイレクトの使用

7.4 U48+/GA48+で利用可能

パターンリダイレクトは、正規表現を使用して、複数のソースURLとその置換のパターンを定義します。 そのため、新しいURLにマッピングするURLのグループが多い場合に最適である。 NginxやApacheのようなウェブサーバーで一括リダイレクトを作成できますが、これはすぐに使える機能なので、Liferayで直接パターンリダイレクトを設定できます。

important

Liferayは現在のサイトのフレンドリーURLに基づいてリダイレクトパターンをフレンドリーURLとして解釈するため、非フレンドリーURL(バーチャルホスト名やポート番号など)を使ったリダイレクトパターンを使ったり、現在のサイトの範囲外のページにリダイレクトしたり(サイトAのページAからサイトBのページBにリダイレクトするなど)することはできません。

ただし、アドレスの前にプロトコルを追加することで、外部のウェブサイトにリダイレクトすることができます。 (例えば、http://www.externalwebsite.com を使って外部ウェブサイトにリダイレクトする)。

使用する正規表現によっては、パターンリダイレクトは エイリアスリダイレクト よりも遅く、意図したよりも多くのURL一致が発生する可能性があります。 これらの理由から、可能な限りエイリアスリダイレクトを推奨します。 詳しくは、リダイレクトと404追跡の設定 をご覧ください。

パターンリダイレクトの作成

  1. サイトメニュー( Site Menu ) を開き、 コンフィギュレーションリダイレクト に進む。

  2. Patterns] タブに移動します。

    リダイレクトアプリケーションの[パターン]タブに移動します。

  3. [Pattern]フィールドに、ソースURLの正規表現を入力します。 各ページのフレンドリURLの先頭に暗黙的に固定されているため、/homeは、正規表現では ^/homeと同じになります。

    Liferayは、Java正規表現パッケージが提供するすべての操作をサポートします。 詳しくは、 JDKドキュメント をご覧ください。

  4. 行先URLを入力します。

    tip

    リファレンスを使って、URLのグループを置換パターンでキャプチャできます。 例えば、次の画像では、$1の値が (\d+) 正規表現でキャプチャされた値のグループに置き換えられています。

    リダイレクトパターンのソースURLと行先URLを入力します。

  5. (オプション)プラス ボタンをクリックすると、サイトに複数のリダイレクトパターンを追加することができます。

  6. 保存] をクリックします。

warning

循環リダイレクトを作成しないようにします。 これらは、コンテンツフレンドリURLのリダイレクトを定義する際に簡単に作成できます(例:同じコンテンツに対して異なるフレンドリURL間でリダイレクトする)。 Liferay はこれらのループを確実に検出することができません。

パターンリダイレクトの作成ドメインの変更

https://www.old-site.com、https://www.new-site.com のように2つのドメインがある場合、1つのドメインからもう1つのドメインにページをリダイレクトすることができます:

  1. https://www.old-site.com。

  2. サイトメニュー( Site Menu ) を開き、 コンフィギュレーションリダイレクト に進む。

  3. パターンの下に、 ^(.*)を追加する。

    この正規表現はソースリクエストのURLパス全体をキャプチャします。

  4. 宛先URLの下に、 https://www.new-site.com/$0を追加する。

    `` は、キャプチャされたURLパス全体を、ソースから宛先URLまで追加する。

  5. Save] をクリックします。

今、https://www.old-site.com/examplepage にアクセスすると、https://www.new-site.com/examplepage にリダイレクトされる。

パターンリダイレクトを理解する

ユーザーがソースURLにアクセスしようとすると、LiferayはレイアウトフレンドリURLに対して、指定された順序でパターンをテストします。 一致は、おおよそ下記のようなルールで行われます。

  • URLがコントロールパネルURLの場合、コントロールパネルのURLをキャプチャすることができないため、一致は行われません。

  • 現在のURLにエイリアスリダイレクトがある場合、ユーザーはその宛先にリダイレクトされます。

  • エイリアスが見つからない場合、Liferayはすべてのパターンを使い切るか、そのうちの1つが一致するまで、それぞれのリダイレクトパターンを順番にテストします。 Liferay はユーザーを最初の一致にリダイレクトします。

関連トピック

Capability:
Feature: