You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fastly+Adobe AEM(cloud)配合Apache Rewrite规则按x-aem-client-country跳转失效问题

你的Rewrite规则本身不存在语法错误,未生效是Adobe AEM Dispatcher(Apache)场景下的典型配置冲突问题,常见原因和修复方案如下:

常见失效原因

  • Dispatcher请求头白名单限制
    Dispatcher默认会过滤未在/clientheaders配置中声明的请求头,你在AEM Servlet中能拿到请求头只能说明头被转发到了后端AEM实例,但Apache Rewrite模块处理规则时,需要先在dispatcher配置的clientheaders段添加x-aem-client-country头,Apache层才能读取到该值用于规则判断。
  • 规则执行优先级问题
    如果存在其他Rewrite规则在当前规则前执行,且携带了[L]终止标记,会导致当前国家校验规则未被触发。建议将本条规则移至虚拟主机配置的所有Rewrite规则最顶部测试。
  • 头值匹配容错不足
    部分场景下请求头可能携带不可见的空白字符,原规则的严格匹配会失效,可以调整匹配规则增加容错。
  • SSL终止导致跳转异常
    由于你站点的SSL在外部终止,Apache侧拿到的是HTTP请求,默认跳转可能返回HTTP协议的错误页地址,如果站点有强制HTTPS的配置,会导致跳转逻辑被覆盖,出现规则未生效的假象。

修复步骤

  1. 先更新dispatcher配置,添加请求头白名单:
/clientheaders {
  "x-aem-client-country"
  # 保留原有其他已配置的允许头
}
  1. 调整Rewrite规则如下,建议放在块下的最顶部:
RewriteEngine On
# 测试阶段可开启rewrite日志确认头取值,正式环境关闭
# LogLevel alert rewrite:trace3

# 增加空白字符容错、匹配忽略大小写
RewriteCond %{HTTP:x-aem-client-country} !^GB\s*$ [NC]
# 错误页路径精确匹配、忽略大小写
RewriteCond %{REQUEST_URI} !^/uk/en/errors/location-error.html$ [NC]
# 跳转显式指定HTTPS协议,适配外部SSL终止场景
RewriteRule ^.*$ https://%{HTTP_HOST}/uk/en/errors/location-error.html [R=307,L]
  1. 重启Apache和dispatcher服务后验证规则生效情况。

内容的提问来源于stack exchange,提问作者John Little

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 00:57:03