問題
- この記事では、
company.default.home.url
を/
として設定した場合の、ハイレベルな概要を説明します。
Environment
- 複数の仮想ホストを持つサイトまたはインスタンスを持つLiferay DXP
解決策
- Liferay DXPのインスタンスが以下のような設定になっているとします:
- 以下のPublic Pagesを持つ2つのサイト バーチャルホスト
-
Liferay Test 1 公開ページのバーチャルホストは
liferay-test1.com
です。 -
Liferay Test 2 公開ページのバーチャルホストは
liferay-test2.com
です。
-
Liferay Test 1 公開ページのバーチャルホストは
-
company.default.home.url
プロパティに/
が設定されている(デフォルトでは/web/guest
に設定されている) - 両サイトとも、「公開ページ」には、以下のように
/
へのリンクを含むウェブコンテンツの記事が掲載されています:-
<p><a href="/">Test Link</a></p>
-
- 以下のPublic Pagesを持つ2つのサイト バーチャルホスト
ここで、私たちが期待することは何でしょうか:
- liferay-test1.comにアクセスし、それぞれの「テストリンク」をクリックすると、 http://liferay-test1.com/に着地します。
- liferay-test2.comにアクセスし、それぞれの「テストリンク」をクリックすると、 http://liferay-test2.com/に着地します。
この動作は、テーマの ThemeDisplay.getURLHome()
にも適用されることをご留意ください。
もう一つ、 web.server.host
プロパティは、ホスト/サーバ解決ロジックに影響を与えるということです。 web.server.host
プロパティで特定のホスト名を定義すると、Liferay は URL を生成する際にこの特定のホスト名を使用するよう強制します。 デフォルトの portal.propertiesで述べたように、このプロパティを空白にすると(すなわち、 web.server.host=
)、ホストがサーブレットコンテナから派生することを意味します。 web.server.host
プロパティが空白の場合、前述のように /
がリクエストされたホスト名に対して相対的になるような動作を期待する必要があります。
追加情報