サイトマップ
AEM Sites のサイトマップを作成して SEO を強化する方法について説明します。
設定
サイトマップの絶対 URL absolute-sitemap-urls
AEM のサイトマップは、Sling マッピングを使用して絶対 URL をサポートしています。 これは、サイトマップを生成する AEM サービス(通常は AEM パブリッシュサービス)にマッピングノードを作成することで行われます。
次のように、例えば https://wknd.com
の Sling マッピングノードは、/etc/map/https
で定義できます。
/etc/map/https/wknd-site
jcr:primaryType
nt:unstructured
/etc/map/https/wknd-site
sling:internalRedirect
/content/wknd/(.*)
/etc/map/https/wknd-site
sling:match
wknd.com/$1
以下のスクリーンショットは、同様の設定を示していますが、http://wknd.local
(http
で実行中のローカルホスト名のマッピング)を対象としています。
サイトマップスケジューラーの OSGi 設定
(cron 式を使用して)サイトマップが生成/再生成され、AEM にキャッシュされる頻度について、OSGi ファクトリ設定を定義します。
ui.config/src/main/jcr_content/apps/wknd/osgiconfig/config.publish
{
"scheduler.name": "WKND Sitemaps",
"scheduler.expression": "0 0 2 1/1 * ? *",
"searchPath": "/content/wknd"
}
Dispatcher のフィルター許可ルール
サイトマップのインデックスとサイトマップファイルに対する HTTP リクエストを許可します。
dispatcher/src/conf.dispatcher.d/filters/filters.any
...
# Allow AEM sitemaps
/0200 { /type "allow" /path "/content/*" /selectors '(sitemap-index|sitemap)' /extension "xml" }
Apache web サーバーの書き換えルール
.xml
サイトマップの HTTP リクエストが、基になる正しい AEM ページにルーティングされるようにします。 URL 短縮化を使用しない場合、または Sling マッピングを使用して URL 短縮化を実行する場合、この設定は不要です。
dispatcher/src/conf.d/rewrites/rewrite.rules
...
RewriteCond %{REQUEST_URI} (.html|.jpe?g|.png|.svg|.xml)$
RewriteRule ^/(.*)$ /content/${CONTENT_FOLDER_NAME}/$1 [PT,L]