問題
-
存在しない言語コンテンツが外部のインデックス作成エージェントに提供されています。
シナリオ:
1. サイト ページ (ホームページ) に英語のコンテンツのみが含まれている
2. Liferay では、米国英語とベトナム語が次のように構成されています。
[ コントロール パネル > インスタンス設定 > ローカリゼーション ]
上記の設定では、サイトマップ インデックスにベトナム語の代替ページ リンクがリストされます。 これは、ベトナム語のコンテンツが存在することを外部のクローラーに不正確に示します。 見つかったページ ソースの表示:
<lastmod>2021-01-01T01:02:03+00</url>00</lastmod>
<changefreq>毎日</changefreq>
<xhtml:link href="http://localhost:8080/homepage" hreflang="en-US" rel="alternate"/>
<xhtml:link href="http://localhost:8080/vi/homepage" hreflang="vi-VN" rel="alternate"/>
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:8080/homepage"/>
Environment
- DXP 7.3
解決策
-
動作は製品の現在の制限です。 選択した言語のみで特定のページを表示する機能はありません。これはサイト レベルで制御されます。
このトピックに従ってください
1. 機能リクエスト チケット: 翻訳のために hreflang を正しく設定します。
参照: LPS-1095462. さらに、製品チームには、将来のリリースに新機能を追加する可能性を調査および調査するための 2 のアクティブなチケットがあります。
参照: LPS-110353 および LPS-138457
考えられる回避策
ページまたはコンテンツ レベルでより細かいレベルの制御を行うには、サイトを言語ごとに分けるか、すべてのページまたはコンテンツを翻訳する方法を見つける方法を見つけることができます。サイトの言語。 LayoutSitemapURLProviderをカスタマイズして、現在のページが [title/name/description… など] layout.getAvailableLanguageIdsを使用する。 このアイデアを使用しても、ページはページに表示されるコンテンツの言語を自動検出しません。 表示可能なすべてのポートレットが、表示されるすべてのコンテンツの言語を認識する必要があり、サイトマップ生成ごとにかなりの余分な時間が必要になります。