AEMaaacs发布实例中如何删除/etc/map过时条目?
AEMaaCS发布实例中删除旧映射节点的Filter配置方案
针对你在AEMaaCS发布实例中遇到的旧映射节点无法删除的问题,以下是可行的filter.xml配置方案,支持多环境匹配且避免误删:
核心配置思路
原replace模式仅会替换包内存在的节点,无法主动删除包外的旧节点;需使用mode="delete"模式直接指定要删除的节点路径,结合环境变量或通配符实现多环境适配。
具体Filter配置
1. 标准化环境名(使用AEMaaCS内置环境变量)
如果你的环境名(如integration)是标准化命名,可使用官方内置的${env.name}变量动态匹配当前环境:
<!-- 仅删除目标环境下example.com的redirect_old节点 --> <filter root="/etc/map.example/${env.name}.publish/https/${env.name}.example.com/redirect_old" mode="delete"/> <!-- 删除目标环境下的fr/de/it域名映射节点 --> <filter root="/etc/map.example/${env.name}.publish/https/${env.name}.example.fr" mode="delete"/> <filter root="/etc/map.example/${env.name}.publish/https/${env.name}.example.de" mode="delete"/> <filter root="/etc/map.example/${env.name}.publish/https/${env.name}.example.it" mode="delete"/>
2. 非标准化环境名(使用通配符)
若环境名无统一规范,用*通配符匹配任意环境前缀:
<!-- 删除任意环境下example.com的redirect_old节点 --> <filter root="/etc/map.example/*.publish/https/*.example.com/redirect_old" mode="delete"/> <!-- 删除任意环境下的fr/de/it域名映射节点 --> <filter root="/etc/map.example/*.publish/https/*.example.fr" mode="delete"/> <filter root="/etc/map.example/*.publish/https/*.example.de" mode="delete"/> <filter root="/etc/map.example/*.publish/https/*.example.it" mode="delete"/>
关键注意事项
mode="delete"是AEM中专门用于删除指定路径节点的模式,在云环境中生效稳定,替代你之前尝试的replace+cleanup组合。- 路径精确性:针对
redirect_old的filter仅指向该子节点,不会影响example.com下的其他正常映射。 - 通配符使用:
*仅匹配单个路径段,不会跨层级匹配,避免误删其他无关节点。 - 原
replace模式失效原因:该模式仅会同步包内存在的节点到目标路径,不会主动清理包外的旧节点,因此无法解决你的问题。
内容的提问来源于stack exchange,提问作者Deeepdigger
相关产品推荐
相关产品推荐

