パターンリダイレクトの使用
7.4 U48+/GA48+で利用可能
パターンリダイレクトは、正規表現を使用して、複数のソースURLとその置換のパターンを定義します。 したがって、新しい URL にマッピングする URL のグループが大きい場合に最適です。 Nginx や Apache などの Web サーバーで一括リダイレクトを作成できますが、これはすぐに使用できる機能であるため、Liferay で直接パターン リダイレクトを設定できます。
Liferay は、現在のサイトのフレンドリ URL に基づいてリダイレクト パターンをフレンドリ URL として解釈するため、非フレンドリ URL (仮想ホスト名、ポート番号など) でリダイレクト パターンを使用したり、現在のサイト範囲外のページにリダイレクトしたり (つまり、サイト A のページ A からサイト B のページ B にリダイレクトしたり) することはできません。
ただし、アドレスの前にプロトコルを追加することで、外部の Web サイトにリダイレクトできます。 (例: 外部 Web サイトにリダイレクトするには、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の先頭に暗黙的に固定されているため、
/homeは、正規表現では^/homeと同じになります。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 はユーザーを最初の一致にリダイレクトします。