パターンリダイレクトの使用
7.4 U48+/GA48+ が利用可能です
パターンリダイレクトは、正規表現を使用して、複数のソースURLとその置換のパターンを定義します。 したがって、これらは多数のURLを新しいURLにマッピングする必要がある場合に最も効果的です。 NginxやApacheのようなWebサーバーで一括リダイレクトを作成することもできますが、これは標準機能なので、Liferayでパターンリダイレクトを直接設定できます。
Liferayはリダイレクトパターンを現在のサイトのフレンドリーURLに基づいてフレンドリーURLとして解釈するため、フレンドリーでないURL(仮想ホスト名、ポート番号など)でリダイレクトパターンを使用したり、現在のサイトの範囲外のページにリダイレクトしたりすることはできません(つまり、サイトAのページAからサイトBのページBにリダイレクトすることはできません)。
ただし、アドレスの前にプロトコルを追加することで、外部ウェブサイトにリダイレクトできます。 (例:http://www.externalwebsite.com を使用して外部ウェブサイトにリダイレクトします。)
使用する正規表現によっては、パターンリダイレクトは エイリアスリダイレクト よりも遅くなり、意図したよりも多くの URL マッチが発生する可能性があります。 これらの理由から、可能な限りエイリアスリダイレクトを推奨します。 詳細については、 リダイレクトと 404 トラッキングの設定 を参照してください。
パターンリダイレクトの作成
-
サイトメニュー (
) を開き、 設定 → リダイレクト に移動します。 -
パターン タブに移動します。
![リダイレクトアプリケーションの[パターン]タブに移動します。](https://resources.learn.liferay.com/images/dxp/latest/en/sites/site-settings/managing-site-urls/setting-up-redirects-and-404-tracking/using-pattern-redirects/images/01.png)
-
[Pattern]フィールドに、ソースURLの正規表現を入力します。 それは、各ページのフレンドリーURLの先頭に暗黙的に固定されています。
Liferayは、Java正規表現パッケージが提供するすべての操作をサポートします。 詳細については、 JDK のドキュメント を参照してください。
-
行先URLを入力します。
宛先URLが無効な場合は、有効なURLを入力するよう促す警告が表示されます。 さらに、URLが長すぎる場合は、省略記号(…)で切り詰められます。
ヒントリファレンスを使って、URLのグループを置換パターンでキャプチャできます。 例えば、次の画像では、
$1の値が、(\d+)正規表現によってキャプチャされた値のグループに置き換えられます。
-
ユーザーエージェント欄で、オプションを選択してください。
-
すべて(デフォルト):フィルタリングせずにすべてのユーザーエージェントにパターンを適用します。
-
ボット:パターンをボットのみに適用します。 システムは、クローラーユーザーエージェントリストを使用してボットを識別します。
リストを表示または編集するには、 グローバル メニュー (
に移動し、 コントロール パネル → システム設定に移動し、コンテンツとデータの下の ページ をクリックし、システム スコープの下の クローラー ユーザー エージェント を選択します。 -
人間:このパターンを人間のユーザーにのみ適用し、ボットはリダイレクト対象から除外します。
-
-
(オプション) プラス (
) または 削除 (
) をクリックして、パターンを追加したり、既存のパターンを削除したりできます。 -
[保存]をクリックします。
循環リダイレクトを作成しないようにします。 これらは、コンテンツフレンドリURLのリダイレクトを定義する際に簡単に作成できます(例:同じコンテンツに対して異なるフレンドリURL間でリダイレクトする)。 Liferay はこれらのループを確実に検出することができません。
パターンリダイレクトの作成:ドメインの変更
https://www.old-site.com と https://www.new-site.com のような 2 つのドメインがある場合、一方のドメインからもう一方のドメインにページをリダイレクトできます。
-
https://www.old-site.com にアクセスしてください。
-
サイトメニュー (
) を開き、 設定 → リダイレクト に移動します。 -
パターンの下に、
^(.*)を追加します。この正規表現は、ソースリクエストのURLパス全体をキャプチャします。
-
宛先URLの下に、
https://www.new-site.com/$0を追加します。$0は、ソースからキャプチャした URL パス全体を宛先 URL に追加します。 -
[保存]をクリックします。
現在、https://www.old-site.com/examplepage にアクセスすると、https://www.new-site.com/examplepage にリダイレクトされます。
パターンリダイレクトを理解する
ユーザーがソースURLにアクセスしようとすると、LiferayはレイアウトフレンドリURLに対して、指定された順序でパターンをテストします。 一致は、おおよそ下記のようなルールで行われます。
-
URLがコントロールパネルURLの場合、コントロールパネルのURLをキャプチャすることができないため、一致は行われません。
-
現在のURLにエイリアスリダイレクトがある場合、ユーザーはその宛先にリダイレクトされます。
-
エイリアスが見つからない場合、Liferayはすべてのパターンを使い切るか、そのうちの1つが一致するまで、それぞれのリダイレクトパターンを順番にテストします。 Liferay はユーザーを最初の一致にリダイレクトします。