无管道 URL 重定向 pipeline-free-redirects

由于各种原因,组织会重写URL,从而导致301(或302)重定向,这意味着浏览器会被重定向到不同的页面。

这些情况包括:

  • 已移除HTML页面,因此用户将被带入替换页面(有时是主页),而不会看到404 Page Not Found错误。
  • 重命名的HTML页面。
  • seo优化。

AEM as a Cloud Service提供了多种方法来实施服务器端重定向,但在以下情况下,本文中所述的策略(管道免费重定向)是很好的选择:

  • 维护重定向的人员是业务用户,他们无权将文件更改提交到源代码管理或执行Cloud Manager Web层配置管道。
  • 重定向的数量范围从数到数万不等。
  • 您需要作为自定义项目或通过使用ACS Commons重定向映射管理器ACS Commons重定向管理器创建的用户界面选项。

此功能的核心是AEM Apache/Dispatcher能够加载(或重新加载)一个或多个已放置在发布存储库中指定位置中的重写映射文件(以便可以从AEM发布中下载)。 请务必注意,文件到达的方式超出了此功能的范围,但您可以考虑以下方法之一:

  • 在创作用户界面中将重写映射摄取为资产并进行发布。
  • 安装ACS Commons重定向映射管理器至少6.7.0版本或更高版本),该管理器包括一个用于管理url映射的用户界面,并且还可以发布重写映射文件。
  • 安装ACS Commons重定向管理器至少6.10.0版本或更高版本),该管理器还包括用于管理url映射的用户界面,并且还可以发布重写映射文件。
  • 通过编写自定义应用程序实现完全的灵活性。 例如,使用用户界面或命令行界面管理url映射,或者使用表单上传重写映射,然后使用AEM API发布重写映射文件。
NOTE
此功能需要AEM版本​ 18311或更高版本
NOTE
使用此功能的重定向映射管理器需要ACS Commons版本​ 6.7.0或更高版本,而使用重定向管理器需要版本​ 6.10.0或更高版本

有关详细的分步实施指南,请参阅实施管道免费的URL重定向教程。

重写映射 rewrite-map

默认情况下,Apache HTTP服务器每300秒重新加载一次重写映射(如果更改)(该值可配置)。 文件格式应遵循Apache文档中描述的纯文本键值映射RewriteMap文件格式。

应创建名为managed-rewrite-maps.yaml的文件以指定重写映射文件的位置,并且必须使用Cloud Manager全栈栈管道或Web层管道部署该文件一次。 该文件必须在Dispatcher配置的src/选择加入文件夹中创建。 确保使用灵活模式文件结构

您可以使用以下模式对其进行配置:

maps:
- name: my.map
  path: <path-in-publish-repository>/redirectmap.txt

例如,如果您选择的放置重写映射文件的方法是将它作为名为mysite-redirectmap.txt的资源摄取到AEM中,然后发布,则可以在/content/dam下指定一个文件夹:

maps:
- name: my.map
  path: /content/dam/redirectmaps/mysite-redirectmap.txt

接下来,在Apache配置文件(如rewrites/rewrite.rules<yourfile>.vhost)中,必须配置名称属性(上述示例中的my.map)引用的映射文件。 加载后,此映射文件将保存在​ fixed ​位置/tmp/rewrites/下的Dispatcher本地存储中。

RewriteMap指令应指示使用sdbm (简单DBM)格式以数据库管理器(DBM)文件格式存储数据,并且完整文件路径是从存储位置前缀和name属性派生的。

其余配置取决于redirectmap.txt的格式。 如下例所示,最简单的格式是在原始url与映射url之间的一对一映射:

# RewriteMap from managed rewrite maps
RewriteMap map.foo dbm=sdbm:/tmp/rewrites/my.map
RewriteCond ${map.foo:$1} !=""
RewriteRule ^(.*)$ ${map.foo:$1|/} [L,R=301]

注意事项 considerations

请牢记以下内容:

  • 默认情况下,在加载重写映射时,Apache会启动,而不等待加载完整映射文件,因此在加载完整映射之前,可能存在临时不一致的情况。 可以更改此设置,以便Apache会等待加载完整映射内容,但Apache需要更长的时间才能启动。 若要更改此行为以便Apache等待,请将wait:true添加到managed-rewrite-maps.yaml文件。
  • 要更改加载之间的频率,请将ttl: <integer>添加到managed-rewrite-maps.yaml文件中。 例如:ttl: 120
  • 对于RewriteMap单个条目,Apache的长度限制为1024。

教程 tutorials

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab