实施无管道URL重定向
了解如何在AEM as a Cloud Service中实施管道免费的URL重定向,以使营销团队无需开发人员即可管理重定向。
在AEM中有多个管理URL重定向的选项,有关详细信息,请参阅URL重定向。
本教程重点介绍如何在文本文件(如Apache RewriteMap)中将URL重定向创建为键值对,并使用AEM as a Cloud Service特定的配置将它们加载到Apache/Dispatcher模块中。
先决条件
要完成本教程,您需要:
-
版本为 或更高18311 的AEM as a Cloud Service环境。
-
必须在其上部署示例WKND Sites项目。
教程用例
出于演示目的,假设WKND营销团队正在启动新的滑雪活动。 他们希望为滑雪冒险页面创建简短URL,并像管理内容一样自行管理这些页面。 他们决定使用管道免费的URL重定向方法管理URL重定向。
根据营销团队的要求,需要创建URL重定向如下。
现在,我们来看看如何在AEM as a Cloud Service环境中管理这些URL重定向和所需的一次性Dispatcher配置。
如何管理URL重定向 manage-redirects
要管理URL重定向,有多个可用选项,让我们来探索它们。
DAM中的文本文件
URL重定向可以作为文本文件中的键值对进行管理,并上传到AEM数字资产管理(DAM)。
例如,上述URL重定向可以保存在名为skicampaign.txt的文本文件中,并上传到DAM @ /content/dam/wknd/redirects文件夹。 审核和批准后,营销团队可以发布文本文件。
# Ski Campaign Redirects separated by the TAB character
/ski /us/en/adventures.html
/ski/northamerica /us/en/adventures/downhill-skiing-wyoming.html
/ski/westcoast /us/en/adventures/tahoe-skiing.html
/ski/europe /us/en/adventures/ski-touring-mont-blanc.html
DAM中的
ACS Commons — 重定向映射管理器
ACS Commons — 重定向映射管理器提供了一个用户友好的界面来管理URL重定向。
例如,营销团队可以创建名为SkiCampaign的新 重定向映射 页面,并使用 编辑条目 选项卡添加上述URL重定向。 URL重定向位于/etc/acs-commons/redirect-maps/skicampaign/jcr:content.redirectmap.txt。
ACS Commons — 重定向管理器
或者,ACS Commons — 重定向管理器还提供了用户友好的界面来管理URL重定向。
例如,营销团队可以创建名为/conf/wknd的新配置,并使用 +重定向配置 按钮添加上述URL重定向。 URL重定向位于/conf/wknd/settings/redirects.txt。
如何配置Dispatcher
要将URL重定向加载为RewriteMap并将其应用于传入请求,需要以下Dispatcher配置。
为灵活模式启用Dispatcher模块
首先,验证是否已为 灵活模式 启用Dispatcher模块。 dispatcher/src/opt-in文件夹中存在USE_SOURCES_DIRECTLY文件表示Dispatcher处于灵活模式。
将URL重定向加载为RewriteMap
接下来,在dispatcher/src/opt-in文件夹创建一个新的配置文件managed-rewrite-maps.yaml,该文件的结构如下。
maps:
- name: <MAPNAME>.map # e.g. skicampaign.map
path: <ABSOLUTE_PATH_TO_URL_REDIRECTS_FILE> # e.g. /content/dam/wknd/redirects/skicampaign.txt, /etc/acs-commons/redirect-maps/skicampaign/jcr:content.redirectmap.txt, /conf/wknd/settings/redirects.txt
wait: false # Optional, default is false, when true, the Apache waits for the map to be loaded before starting
ttl: 300 # Optional, default is 300 seconds, the reload interval for the map
在部署期间,Dispatcher在/tmp/rewrites文件夹中创建<MAPNAME>.map文件。
managed-rewrite-maps.yaml)和位置(dispatcher/src/opt-in)应与上面完全相同,请将其视为要遵循的约定。将URL重定向应用于传入请求
最后,创建或更新Apache重写配置文件以使用上述映射(<MAPNAME>.map)。 例如,让我们使用dispatcher/src/conf.d/rewrites文件夹中的rewrite.rules文件来应用URL重定向。
...
# Use the RewriteMap to define the URL redirects
RewriteMap <MAPALIAS> dbm=sdbm:/tmp/rewrites/<MAPNAME>.map
RewriteCond ${<MAPALIAS>:$1} !=""
RewriteRule ^(.*)$ ${<MAPALIAS>:$1|/} [L,R=301]
...
示例配置
让我们查看上面提到的的每个URL重定向管理选项的Dispatcher配置。
当URL重定向在文本文件中作为键值对进行管理,并上传到DAM时,配置如下。
[dispatcher/src/opt-in/managed-rewrite-maps.yaml]{class="badge neutral" title="下面代码示例的文件名。"}
| code language-yaml |
|---|
|
[dispatcher/src/conf.d/rewrites/rewrite.rules]{class="badge neutral" title="下面代码示例的文件名。"}
| code language-none |
|---|
|
使用ACS Commons — 重定向映射管理器管理URL重定向时,配置如下。
[dispatcher/src/opt-in/managed-rewrite-maps.yaml]{class="badge neutral" title="下面代码示例的文件名。"}
| code language-yaml |
|---|
|
[dispatcher/src/conf.d/rewrites/rewrite.rules]{class="badge neutral" title="下面代码示例的文件名。"}
| code language-none |
|---|
|
使用ACS Commons — 重定向管理器管理URL重定向时,配置如下。
[dispatcher/src/opt-in/managed-rewrite-maps.yaml]{class="badge neutral" title="下面代码示例的文件名。"}
| code language-yaml |
|---|
|
[dispatcher/src/conf.d/rewrites/rewrite.rules]{class="badge neutral" title="下面代码示例的文件名。"}
| code language-none |
|---|
|
如何部署配置
要部署配置,请使用Cloud Manager中的全栈栈或Web层配置管道。
部署成功后,URL重定向将处于活动状态,营销团队无需开发人员即可管理它们。
如何测试URL重定向
让我们使用浏览器或curl命令测试URL重定向。 访问/ski/westcoast URL并确认它重定向到/us/en/adventures/tahoe-skiing.html。
摘要
在本教程中,您已了解如何使用AEM as a Cloud Service环境中的无管道配置管理URL重定向。
营销团队可以将URL重定向作为文本文件中的键值对进行管理,并将其上传到DAM或使用ACS Commons — 重定向映射管理器或重定向管理器。 Dispatcher配置已更新,以作为RewriteMap加载URL重定向,并将其应用于传入请求。